问题一:页面自动跳转到 80 端口问题描述【Nginx 使用自签名证书实现 https 反代 Spring Boot 中碰到的页面跳转问题】最近在使用Nginx反代一个Spring Boot项目中碰到了一个问题 , 使用 Spring Boot 中的 redirect:
进行页面跳转的时候 , 通过 Nginx 反代访问后 , 页面会自动跳转到 80 端口 , 导致服务无法访问 , 页面跳转错误 。
问题解决出现这种问题的原因是因为在配置 location
中的 proxy_set_header Host $host;
时候 , 没有加端口号 , 正确的配置应该是这样的
proxy_set_header Host $host:$server_port;
问题二:页面由 https 协议自动跳转到 http 协议问题描述解决了上面的端口问题后 , 后面又出现自动跳转到 http 协议的端口 , 例如访问 https://127.0.0.1:8082/page
会自动跳转到 http://127.0.0.1:8082/page
, 导致 Nginx 报
400 Bad RequestThe plain HTTP request was sent to HTTPS port
解决出现这种问题的原因是因为在配置 location
中的 proxy_redirect
时候 , 设置成了 off
, 没有配置合适的跳转协议 , 正确的应该是这样
proxy_redirect http://$host:$server_port https://$host:$server_port;
即将 Spring Boot 的 http 协议跳转更换为 https 协议跳转
此时问题解决
完整配置server {listen 8082 http2 ssl;ssl on;ssl_certificate server.crt;ssl_certificate_key server.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;#请按照以下套件配置 , 配置加密套件 , 写法遵循 openssl 标准 。ssl_ciphers ECDHE-RSA-AES256-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {proxy_redirect http://$host:$server_port https://$host:$server_port;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Origin '';proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;proxy_pass http://127.0.0.1:8079;}
版权本文首发于 https://www.buguagaoshu.com/archives/nginx-shi-yong-zi-qian-ming-zheng-shu-shi-xian-https-fan-dai-springboot-zhong-peng-dao-de-ye-mian-tiao-zhuan-wen-ti 转载请注明来源
经验总结扩展阅读
- 六 SpringCloud - RabbitMQ安装,三种消息发送模式,消息发送确认,消息消费确认(自动,手动)
- 2023福州五险一金缴纳比例多少 福州最低自己交社保要多少钱一个月
- 2023宁波海曙五险一金缴纳比例多少 宁波海曙最低自己交社保要多少钱一个月
- 杭州自费社保一年需交多少钱 杭州城乡居民社保2023缴费标准
- 上海社保缴费标准2023年最新 上海自己交社保一个月多少钱
- 热水器长期开着很费电吗 电热水器使用年限一般为多少年
- bw是什么意思网络用语
- 真我v15开箱_真我x50实际使用测评
- 送给自己的情绪签名 句句精辟的签名
- 如何使用微信截图(微信怎么截图发给别人)