Nginx 如何在反向代理上设置头以在自定义端口上通过http传递,但显示https和端口443
我使用NGINX作为反向代理来连接到Windows服务器中托管的应用程序。 上游流量的连接路径类似于:Nginx 如何在反向代理上设置头以在自定义端口上通过http传递,但显示https和端口443,nginx,nginx-reverse-proxy,Nginx,Nginx Reverse Proxy,我使用NGINX作为反向代理来连接到Windows服务器中托管的应用程序。 上游流量的连接路径类似于: 在端口443上通过https反向代理的浏览器 通过ip 10.1.0.10端口8080上的http反向代理到Windows app server nginx中的相关配置如下: server { server_name example.com; listen 443 ssl http2; location / { return 301 https:/
- 在端口443上通过https反向代理的浏览器
- 通过ip 10.1.0.10端口8080上的http反向代理到Windows app server
server {
server_name example.com;
listen 443 ssl http2;
location / {
return 301 https://$host/app;
}
location ~ ^/app {
add_header X-Frame-Options SAMEORIGIN always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;" always;
add_header X-Content-Type-Options nosniff always;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_intercept_errors on;
proxy_pass http://10.1.0.10:8080;
}
}
我可以看到对的请求最初到达服务器。问题是,后续请求正在尝试访问URL
看起来proxy_set_header主机正在按预期工作(即用example.com替换ip地址10.1.0.10),但协议和端口号没有改变
我尝试添加以下指令:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
但是没有运气
如何配置NGINX以在头文件中使用(端口443)时将传入流量传递给?听起来您的后端正在使用完整URL重定向客户端-您可能需要使用正则表达式从
位置
头文件中删除端口,尽管我同意NGINX应该自动执行此操作。是的。问题不是NGINX配置,而是后端!