Перенаправить субдомен на порт [nginx/flask]
Я знаю, что это общий вопрос, и есть ответы на одно и то же, но причина, по которой я задаю этот вопрос, заключается в том, что я не знаю, как подойти к решению. В зависимости от того, как я решаю это сделать, я могу выбрать решение. В любом случае,
У меня есть экземпляр AWS EC2. Мой DNS обрабатывается Route53, и я владею example.com. В настоящее время на моем экземпляре работают две службы:
example.com:80 [nginx/php/wordpress]
example.com:8142 [flask]
Что я хочу сделать, сделайте app.example.com
на example.com:8142
. Как именно я это делаю? Я уверен, что мне нужно будет указать app.example.com
на тот же IP-адрес, что и example.com
, так как он будет тем же самым полем, который будет обслуживать его. И nginx будет первым, кто будет обрабатывать эти запросы на порту 80. Есть ли способ, с помощью которого я могу сделать nginx перенаправлять все запросы на localhost: 8142?
Есть ли лучший способ решить эту проблему?
Ответы
Ответ 1
Вы можете добавить виртуальный хост для app.example.com, который прослушивает порт 80, затем прокси передаст все запросы в колбу:
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://localhost:8142;
}
}
Ответ 2
Вот как бы вы сделали это с Apache.
$cat /etc/apache2/sites-available/app.conf
<VirtualHost *:80>
ServerName app.example.com
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8142/
ProxyPassReverse / http://localhost:8142/
</VirtualHost>