1 回答
TA贡献1842条经验 获得超12个赞
只有 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 不会做任何事情,因为连接还没有通过它。
如果您有任何问题,请不要怀疑问我。
添加回答
举报