у меня есть фляжный сервер, который работает на порту 5000, и у меня есть домен. Я развертываю флягу с gunicorn и nginx. Что я хочу сделать, так это иметь возможность перенаправлять «www.mydomain.com» на другой сервер, скажем, «www.mydomain.webflow.io», но сохранять все запросы, поступающие по другим путям, скажем, «www.mydomain.com/ path1» или «www.mydomain.com/path2» на тот же хост nginx, но с перенаправлением на номер порта 5000.
Как я могу настроить nginx для этого. Нужно ли делать отдельную запись для каждого пути (в разделе местоположения)?
Вы можете сделать что-то вроде этого:
server {
listen 80;
server_name example.com;
location = / {
# this location block handles only request which ends with /
# redrects to another domain
return 301 https://example.otherdomain.tld;
# proxies to another backend
# proxy_pass http://localhost:6000/;
}
location / {
# this location block handles everything else
proxy_pass http://localhost:7777/;
}
}
В приведенной выше конфигурации nginx есть два блока местоположения.
/
. Например:https://example.com/
# a / is appended automatically so this works as well
https://example.com
/
.Например:
https://example.com/api
https://example.com/static/img.png
Я включил опцию, которая перенаправляет вас на новый домен с кодом состояния HTTP 301 (постоянный)
return 301 https://example.otherdomain.tld;
# https://example.com -> https://example.otherdomain.tld;
Второй вариант передает запрос другому бэкенду.
proxy_pass http://localhost:6000/;
Вы должны использовать только один из обоих вариантов