Nginix反向代理---https重定向后变http问题解决

Nginix反向代理---https重定向后变http问题解决

  • 0. 故障现象
  • 1. 原因分析
  • 2. 配置文件
  • 3. 结果

Nginix反向代理---https重定向后变http问题解决_第1张图片

0. 故障现象

继上次的Nginx反向代理端口丢失后又发现了个小问题.

输入url: http:/xxx.xxx.xxx.xxx:777/aaa/ 可以正常访问到登录页面
输入用户名密码后,页面跳转.
跳转后url: http:/xxx.xxx.xxx.xxx/aaa/main.do?method=main 无法正常显示页面
手工将url改为 http:/xxx.xxx.xxx.xxx:777/aaa/main.do?method=main 可以正常访问页面
但此时原先的https变成了http
由于从外网访问,防火墙关闭了80端口.导致400报错

1. 原因分析

后端服务器是http,跳转的proxy_pass 会将url改为http://pana/
如果直接写proxy_pass https://pana/;会因为后端没有https提供服务导致400报错
那么只需要强制再把http 跳转成https即可.修改conf/nginx.conf的以下配置:

  proxy_redirect  http:// https://; 

2. 配置文件

  upstream pana {
    server 192.168.31.70:8088 max_fails=1 fail_timeout=10s;
  }
  server {
    listen       777;
    server_name  pana.cn;	
    charset utf-8;
    access_log  logs/host.access.log  main;
    location / {
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host:$server_port; 
      proxy_pass http://pana/; 
      proxy_redirect  http:// https://; 
      }
  }

3. 结果

输入url: http:/xxx.xxx.xxx.xxx:777/aaa/ 可以正常访问到登录页面
输入用户名密码后,页面跳转.
跳转后url: https:/xxx.xxx.xxx.xxx:777/aaa/main.do?method=main 可以正常访问页面
后续跳转均正常

你可能感兴趣的:(Linux,nginx,nginx)