我尝试发现如何使用 nginx 在 443 上回复,但在端口 6040 上使用应用程序,我需要通过 443 ssl 让 nginx 像 6040 应用程序一样应答,有人知道怎么做吗?
雷加斯
答案1
我假设您的应用程序正在http
监听端口 6040 上的请求,该应用程序与您的 nginx 服务器在同一台机器上运行。如果您的应用程序正在监听https
端口 6040 上的请求,请参阅nginx https 上游反而。
创建一个服务器,监听你的公共 IP 上的端口 443,并作为端口 6040 上的内部应用程序的代理。
/etc/nginx/sites-available/www.example.com.vhost
server {
# Listen on port 443 for both IPv4 and IPv6 and turn on http2 support.
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.com;
ssl on;
# Paths to certificates assuming you're using let's encrypt / certbot
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
# There's much more directives you should fine tune for https, but that's another task.
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:6040;
proxy_read_timeout 90;
proxy_redirect http://localhost:6040 https://www.example.com;
}
}