#nginx #nginx-reverse-proxy #waitress
#nginx #nginx-обратный прокси #официантка
Вопрос:
У меня есть простое приложение flask, которое я использую waitress / nginx для обслуживания / размещения
эти правила работают должным образом с SSL
server {
listen 443 ssl;
listen [::]:443 ssl;
include snippets/number2.conf;
include snippets/ssl-params.conf;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name https://exanple.com;
location / {
proxy_pass http://example.com:5000/;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
listen [::]:80;
server_name domain;
return 302 https://$server_name$request_uri;
}
Однако они не работают так, как ожидалось, то же приложение с waitress / nginx. Обратите внимание, что на этом сервере также запущено другое приложение на порту 8069.
server {
listen 443 ssl;
listen [::]:443 ssl;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
root /var/www/html;
server_name ip.adress;
rewrite ^/$ https://ip.adress;
location / {
proxy_pass http://ip.adress:8069;
}
}
server {
listen 80;
listen [::]:80;
server_name ip.adress;
return 301 https://ip.adress$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
include snippets/number2.conf;
include snippets/ssl-params.conf;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name https:/example.com;
location / {
proxy_pass http://example.com:5000/;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
listen [::]:80;
server_name domain.com;
return 302 https://$server_name$request_uri;
}
Пробовал несколько комбинаций правил сервера, но на данный момент я заблудился.
Ответ №1:
Была ли приведенная ниже proxy_pass http://ip.adress:5000;
основная важная строка в location /
, чтобы все заработало?
Комментарии:
1. Да и настройка url_scheme в приложении flask
Ответ №2:
Я смог с этим разобраться. Для тех, у кого еще возникли проблемы, мне пришлось использовать обратный прокси. Я listened to port 8001
и used a proxy port 5000
с header of Host $host
. Я также добавил url_scheme='https'
в приложение flask.
https://docs.pylonsproject.org/projects/waitress/en/stable/reverse-proxy.html
server {
listen ip.adress:8001 ssl;
include snippets/ssl-self.conf;
include snippets/ssl-params.conf;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name ip.adress;
location / {
proxy_pass http://ip.adress:5000;
proxy_set_header Host $host;
}
}