nginx重定向struts的action出错
各位大侠,
小弟近期配置了一个站点,使用nginx作为反向代理服务器,后面跑一个Tomcat,站点是基于struts的,现在遇到一个问题,action的重定向不正确。描述如下:
1. 访问www.site.com/index.action,nginx会将这个请求代理到localhost:8080/site/index.action。nginx会转发请求的host字段,见如下nginx配置:
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
2. index.action运行完之后,通过struts的配置(struts.xml),它会重定向到another.action,也就是localhost:8080/site/another.action
3. 预期在浏览器上出现的url是www.site.com/another.action,但实际上出现的是www.site.com/site/another.action
问了google和baidu都没得到答复,求大侠指点~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
什么叫暴露才外面额..额额额.
回复
就是tomcat不想让公网用户访问到
在实际有域名的情况下是没有这样的问题的,因为有域名了,就不需要/site了.懂?然后tomcat配置下域名关联即可.
在实际有域名的情况下是没有这样的问题的,因为有域名了,就不需要/site了.懂?然后tomcat配置下域名关联即可.
我真实的应用是放在tomcat的webapps下的site文件夹下,所以是从localhost:8080/site/来访问,tomcat下还有其他的应用。
你rewrite的时候,为什么都多带 一个 /site/ 呢
然后是struts里面的配置:
<action name="index" class="indexPageAction" method="indexPage">
<result name="success" type="redirectAction">another</result>
</action>
先谢谢啦~
#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.site.com;
location ~ .(action|jsp) {
proxy_pass http://localhost:8080;
rewrite ^/(.*)$ /site/$1 break;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location = / {
proxy_pass http://localhost:8080/site/index.action;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
root E:/code/WebRoot;
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*.(js|css)$ {
expires 1h;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
贴下配置,全部的