TemaSM
@TemaSM
Fullstack, DevOps, InfSec

VestaCP на 8083 порте. Как используя субдомен получить доступ к ПУ?

Всем здарова!
Разворачиваю свой личный мини-хостинг (для друзей . . . ну и просто так). Панель стоит VestaCP - по умолчанию ставится на порт 8083 и доступна по https (SSL) - мне эта безопасность не нужна и я отключил ее, делегировал домен и все вроде бы норм, панелька доступна по domain.ru:8083
И собственно сам вопрос: Как сделать субдомен типа: panel.domain.ru при заходе на который корректно работала и отображалась бы сама панелька.
Уже пробовал SVR записи, но не пашет. Виртуальные хосты тоже правил, но nginx говорит, что не может обработать порт 80 (я поменял виртуальный хост на panel.domain.ru и сам порт на 80), так как он уже используется.
Вообщем тупик.
Система: CentOS 6 x32
Панель: VestaCP
Настроены DNS и все остальное...
Сервак от DigitalOcean
*Если надо, скрины скину.

Заранее благодарен всем, кто напишет свой вариант решения :)
  • Вопрос задан
  • 16404 просмотра
Решения вопроса 1
TemaSM
@TemaSM Автор вопроса
Fullstack, DevOps, InfSec
UPD: ВНИМАНИЕ. Ответ был написан очень давно, многое поменялось с тех пор. Ответ скорее всего более не актуален.

Все, 5 часов мучения вылились в отличный результат!
Как я сделал:

1)Идем в админку VestaCP в раздел WEB, редактируем основной домен(например domain.ru) и добавляем алиас вида: panel.domain.ru (вместо panel укажите путь, по которому при заходе Вы будете видеть VestaCP)
2)Заходим в раздел DNS и проверяем записи этого же домена. Обязательно должна быть A запись с именем, которое Вы вводили до этого!
3)Идем по пути /etc/nginx/conf.d/ - там будет файл вида 127.0.0.1.conf (только там ip вашего сервера) - очищаем содержимое этого файла и сохраняем.
4)Далее идем по пути /usr/local/vesta/nginx/conf/ - там будет файл nginx.conf - открываем и редактируем:
После # Vhost будет стоять блок виртуального хоста, примерно такой:
server {
	listen       	8083;
	server_name     _;        
        root            /usr/local/vesta/web;
        charset         utf-8;


Заменяем его на:
server {
	listen       	panel.domain.ru:80;
	server_name     panel.domain.ru;        
        root            /usr/local/vesta/web;
        charset         utf-8;


Теперь выше этого кода, но после # Vhost, добавляем это:
server {
		listen       domain.ru:80 default;
		server_name  domain.ru;		
		location / {
			proxy_pass  http://domain.ru:8080;
		}
		}

domain.ru - Меняйте на тот домен, для которого выставляли A запись в DNS разделе(он же и в WEB разделе)

Теперь поясняю:
С этого момента запросы к главному домену - основной nginx не обрабатывает, а родительский(в VestaCP) делает это именно так как нам необходимо!
При заходе на domain.ru nginx перенаправляет нас на 8080 порт, который принимает пакеты и отображает нам содержимое.
При заходе на panel.domain.ru nginx принимает запросы и выполняет их относительно Location'ов, которые выставлены ниже в файле конфигурации.

Таким образом мы "убили сразу двух зайцев":
1)Как бы переместили нашу панель на субдомен
2)Везде в запросах убрали какие либо порты

Всех благодарю за помощь!
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
IlyaEvseev
@IlyaEvseev
Opensource geek
Можно делать редирект, можно проксирование:
server {
    listen *:80;
    server_name panel.domain.ru;
    location / {
        proxy_pass http://domain.ru:8083;
    }
}
server {
    listen *:8083;
    server_name domain.ru;
    ....
}
Ответ написан
sl_bug
@sl_bug
никак, кроме варианта panel.domain.ru редиректит на domain.ru:8083
Ответ написан
@qwescin
как вариант Haproxy
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы