我在使用nginx代理tomcat时遇到一个奇怪的问题。
配置:
nginx:
server {
listen 80;
server_name tomcat.dev;
location /{
proxy_pass http://127.0.0.1:8800/tomcat/$request_uri;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
}
tomcat:
<Host
name="localhost"
appBase="/usr/share/tomcat7-root"
unpackWARs="true"
autoDeploy="true">
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log."
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context
path="/tomcat"
docBase="/usr/share/nginx/html/tomcat/"
debug="0"/>
我想做的是用nginx代理访问tomcat中的“tomcat”这个项目,我为它添加了contentPath,在页面访问tomcat.dev 的时候,每次刷新页面取得的都是不同的sessionid,我看了一下浏览器,没有JSESSIONID 这个cookie。然后我又通过localhost/tomcat/来访问,就没有问题。
然后我又将上面配置部分修改。去掉“tomcat”,将contextPath设置为“/”。nginx 的改成 proxy_pass http://127.0.0.1:8800/$request_uri;
再通过tomcat.dev访问就是正常的。
各路大神求解。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。