1 回答

TA貢獻1842條經驗 獲得超13個贊
只有 1 個應用程序/服務可能正在偵聽 1 個具體端口。
如果您的燒瓶應用程序已經在偵聽端口 8000,則 nginx 不能。
正常的 https 連接通過端口 443 進入。
我會將配置更改為:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name funders-api.ninja www.funders-api.ninja;
ssl_certificate /etc/letsencrypt/live/funders-api.ninja/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/funders-api.ninja/privkey.pem; # managed by Certbot
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
}
像這樣,安全連接通過端口 443 進入,由 nginx 使用證書進行驗證
ssl_certificate /etc/letsencrypt/live/funders-api.ninja/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/funders-api.ninja/privkey.pem; # managed by Certbot
然后你對你的燒瓶應用程序正在監聽的端口進行代理(一旦連接得到保護)。
這是我如何做的一個例子。如果 nginx 是處理與證書的連接的人,則 nginx 需要偵聽您建立連接的端口,然后將連接代理到您的燒瓶應用程序。
如果您的請求是直接向燒瓶應用程序發出的,則 nginx 不會做任何事情,因為連接還沒有通過它。
如果您有任何問題,請不要懷疑問我。
添加回答
舉報