Как перенаправить соединение с поддомена на другой сервер с помощью Nginx

Я работаю над приложением, где у меня есть следующие элементы:

  • Имя поддомена перенаправляется на порт 80 сервера A
  • Сервер A размещает два контейнера docker: один для nginx с отображением порта 80 на 80 и один для приложения react с отображением порта 3000 на 3000.

То, что я хочу сделать, очень просто: Я хочу перенаправить с помощью nginx соединение, приходящее с поддомена, на порт 3000 и таким образом отобразить приложение react.

Для этого я использую этот файл, который я помещаю в /etc/nginx/sites-enabled/. На данный момент, когда я подключаюсь к my_domain.com, у меня есть страница по умолчанию для nginx, без перенаправления на ip_address:3000.

server {
listen 80;

server_name my_subdomain www.my_subdomain.com;
location /{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://ip_address:3000;
}


}
0
задан 12 May 2021 в 11:15
2 ответа

Ваш прокси-сервер выглядит правильно, учитывая, что вы подключаетесь к www.my_subdomain.com, а не через https. Вы должны убедиться, что ваша конфигурация загружается, я помню, что некоторые серверы nginx загружают только сайты с поддержкой / *. Conf, проверьте /etc/nginx/nginx.conf на строку:

include /etc/nginx/sites-enabled/*.conf;

Также реагирующее приложение - это только некоторые статические файлы , так что вы можете позволить nginx обслуживать их напрямую, нет необходимости в его проксировании.

1
ответ дан 28 July 2021 в 14:07

Я размещаю этот ответ на случай, если кто-то столкнется с той же проблемой, что и я. Как было сказано в принятом ответе, прокси был корректен. Основная причина проблемы заключалась в том, что поддомену потребовалось некоторое время, чтобы вступить в силу.

Также, если вы хотите обслуживать статические файлы react app непосредственно из Nginx, вот хороший tutorial .

0
ответ дан 28 July 2021 в 14:07

Теги

Похожие вопросы