解决 nginx 反向代理时 session 丢失 无效的问题

20人阅读 评论(0) 收藏 举报
分类:

解决 nginx 反向代理时 session 丢失 无效的问题
原文 blog.csdn.net/joyous/article/details/79966593

因为原始路径和代理路径发生了变化,导致 session 丢失,服务端获取的 session 无效,需要修改 nginx 配置做适当修改,参考更具体信息请看 http://nginx.org/en/docs/http/ngx_http_proxy_module.html 有详细描述。

配置增加 proxy_pass http://127.0.0.1:8080/speedacc/; 可以轻松实现代理,但如果路径代理路径和原始路径发生改变,就必须告诉服务器,cookie_path 有所转换 需要添加 proxy_cookie_path  /speedacc /;

也就是将原始服务器的 http://127.0.0.1:8080/speedacc/ 代理到 https://speedacc.localhost1,配置如下,若不需要 ssl 的话,端口通畅都是 80,而不是443

https 代理配置

    # HTTPS server
    
    server {
        listen       443 ssl;
        server_name  localhost;
        server_name  speedacc.localhost1;
               
        ssl_certificate      ssl/server.crt;
        ssl_certificate_key  ssl/server.key;

        #ssl_session_cache    shared:SSL:1m;
        #ssl_session_timeout  5m;

        #ssl_ciphers  HIGH:!aNULL:!MD5;
        #ssl_prefer_server_ciphers  on;
        
        #参考资料
        #http://nginx.org/en/docs/http/ngx_http_proxy_module.html
        location / {
            root   html;
            index  index.html index.htm;
            
            proxy_pass http://127.0.0.1:8080/speedacc/;
            proxy_cookie_path  /speedacc /;            
        }
    }

不带安全连接的 http 代理设置

    # HTTP server
    
    server {
        listen       80 ssl;
        server_name  localhost;
        server_name  speedacc.localhost1;
               
        #ssl_certificate      ssl/server.crt;
        #ssl_certificate_key  ssl/server.key;

        #ssl_session_cache    shared:SSL:1m;
        #ssl_session_timeout  5m;

        #ssl_ciphers  HIGH:!aNULL:!MD5;
        #ssl_prefer_server_ciphers  on;
        
        #参考资料
        #http://nginx.org/en/docs/http/ngx_http_proxy_module.html
        location / {
            root   html;
            index  index.html index.htm;
            
            proxy_pass http://127.0.0.1:8080/speedacc/;
            proxy_cookie_path  /speedacc /;            
        }
    }

原文 blog.csdn.net/joyous/article/details/79966593

参考资料 nginx.org/en/docs/http/ngx_http_proxy_module.html

Q群讨论 236201801


查看评论

解决nginx使用proxy_pass反向代理时,session丢失的问题

nginx proxy_pass 反向代理 session丢失的问题
  • u012204058
  • u012204058
  • 2017-04-30 23:06:46
  • 3182

nginx反向代理(proxy_pass)tomcat导致session失效的问题解决

学习nginx http://www.nginx.cn/nginx-how-to  Nginx反向代理tomcat,很是方便,但是也有些细节的问题需要注意;今天遇到了这样一个问题,tomcat中路径...
  • libraryhu
  • libraryhu
  • 2016-10-19 14:41:17
  • 2785

关于nginx反向代理后session问题

本人新手一枚,最近要在一个外网服务器上提供访问内网某机器中hive的功能。鉴于内网已经安装好现成的hive服务,于是想通过nginx重定向到hive服务。     刚开始简单的使用location ...
  • qq_27499099
  • qq_27499099
  • 2016-12-26 15:31:19
  • 2024

nginx 丢失session 解决

使用nginx在进行反向代理时,出现session丢失的解决办法如下: 在 location / {}...
  • aqzwss
  • aqzwss
  • 2014-08-17 02:56:33
  • 5058

解决nginx中proxy_pass到tomcat的session丢失问题

一直以来我都是用nginx1.5.7来作为web服务器和代理服务器来使用,一直都是一个应用对应一个Tomcat也就是一个端口,也只对应一个域名。   今天把服务器上的Tomcat整合了一下,5个应用...
  • yakson
  • yakson
  • 2015-06-29 15:48:14
  • 21890

Nginx学习-3 解决nginx负载均衡的session问题

查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享 PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果sessio...
  • truelove12358
  • truelove12358
  • 2015-12-11 18:06:07
  • 1027

nginx使用proxy_pass反向代理时cookie丢失问题解决方案

今天在测试环境进行测试时发现有个会话页面无论如何都进不去了,经过调试发现,JSESSIONID的path和我访问应用的path不相同!即我访问的应用是/xxx/,而JSESSIONID的path是/y...
  • zkn_CS_DN_2013
  • zkn_CS_DN_2013
  • 2016-07-08 03:17:02
  • 39997

nginx反向代理深入理解及session共享

一、反向代理详解 上次使用nginx做负载均衡,只使用了一个参数weight,详细的参数今天来八一八; upstream newServer{ server 192.168.0.1:8081 d...
  • wujiangwei567
  • wujiangwei567
  • 2017-09-09 09:32:59
  • 385

nginx反向代理配置多个后端服务时的session问题

当nginx中中只部署一个后端服务的时候可以正常登录,但是当部署两个后端服务的时候,就会出现登录失败的问题。...
  • u011924665
  • u011924665
  • 2016-11-25 15:06:05
  • 1690

Nginx+iis 中搭建的站点解决session 一致性的解决方案

asp.net 中解决 nginx+ iis session 一致性的解决方案
  • u010533180
  • u010533180
  • 2016-10-13 12:06:59
  • 4642
    个人资料
    持之以恒
    等级:
    访问量: 159万+
    积分: 9173
    排名: 2560
    最新评论