Назад | Перейти на главную страницу

Nginx перенаправляет порт на url

Я использую VPS с установленным VestaCP. Веб-панель работает через порт 8083. Мне удалось заставить это работать panel.domain.com однако некоторые URL-адреса на панели теряют функциональность при использовании поддомена.

Мне было интересно, как мне получить порт 8083 указать на domain.com/panel.

Вот что я пробовал в своей конфигурации nginx:

server {
  listen        108.xx.xx.xxx:443;
  server_name domain.com;

  root /var/www/ghost;
  index index.html index.htm;

  location /panel {
    proxy_pass https://127.0.0.1:8083;
  }
}

Если вы хотите получить доступ к панели управления VestaCP через domain.com/panel, вы можете использовать эту конфигурацию nginx:

server {
    listen 108.xx.xx.xxx:443;
    server_name domain.com;

    root /var/www/ghost;
    index index.html index.htm;

    location ~ /panel(.*)$ {
        rewrite ^ https://domain.com:8083$1 permanent;
    }
}

Это заставляет nginx отправлять 301 редирект для всех URI, начинающихся с /panel к https://domain.com:8083, поэтому вы можете получить доступ к панели через https://domain.com/panel.

Однако все URL-адреса, которые создаются на панели VestaCP, по-прежнему указывают прямо на https://domain.com:8083. Если вы хотите изменить их для начала https://domain.com/panel, вам необходимо изменить VestaCP. VestaCP может не иметь возможности напрямую изменить домен, поэтому вам может потребоваться изменить код VestaCP напрямую, что я не рекомендую.

На порте 8083 работает ваша веб-панель, которая, как я полагаю, не основана на Nginx. Чтобы порт 8083 «указывал» на что-либо, вам нужно настроить поведение вашей веб-панели, а не Nginx.

Возможно, вам нужно обратное тому, о чем вы просите, чтобы Nginx прослушивал порт 80 или 433 и перенаправлял или прокси domain.com/panel в веб-панель?

Вы также должны пояснить, что ваш язык «указывает на» будет либо «перенаправлять на», либо «прокси на».