标签:
作者:fbysss我们希望用户通过以下地址来访问:
http://app1.domainname.com
http://app2.domainname.com
比如我们在配置Maven私服Nexus的时候就如此,其默认的路径是http://localhost:8081/nexus,我们希望通过nexus.domainname.com来访问。解决办法:
首先,域名解析,这一步不用在这里说了。如果只是内部实验,将app1.domainname.com、app2.domainname.com配置在客户端hosts文件中即可。server { listen 80; server_name nexus.domainname.com; location /{ index index.html index.htm index.jsp; proxy_pass http://xx.xx.xx.xx:8081/nexus; } }
问题1:浏览器(chrome)告诉我们,此网页包含重定向循环,此时地址栏显示的地址是http://nexus.domainname.com//通过查找相关资料,在路径app1后面加一个斜杠/,就可以正常转向了。
问题2:访问应用的时候,发现遇到用户认证的时候,自然返回到登录页了。这是啥子情况?此时,如果是一般的tomcat应用,地址栏上,后面会跟上,jsessionId=xxxxxx,而且每次访问都不同。
分析:我们可以猜想,session失效了。
解决:原来,这里存在一个cookie路径的配置问题。原理可参考文章:http://030710314.iteye.com/blog/2095819增加一行proxy_cookie_path /nexus /;即可。
server { listen 80; server_name nexus.domainname.com; location /{ index index.html index.htm index.jsp; proxy_pass http://xx.xx.xx.xx:8081/nexus/; proxy_cookie_path /nexus /; } }
server { listen 80; server_name nexus.domainname.com; location /{ index index.html index.htm index.jsp; proxy_pass http://xx.xx.xx.xx:8081; rewrite ^/$ /nexus last; } }
proxy_pass http://xx.xx.xx.xx:8081/nexus/; proxy_cookie_path /nexus /;
proxy_pass http://xx.xx.xx.xx:8081; rewrite /(.*)$ /nexus/$1 break; proxy_cookie_path /nexus /;
标签:
原文地址:http://blog.csdn.net/fbysss/article/details/43311961