nginx重定向struts的action出错

发布于 2021-11-20 20:56:35 字数 703 浏览 946 评论 9

各位大侠,

小弟近期配置了一个站点,使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

别低头,皇冠会掉 2021-11-25 02:50:11

什么叫暴露才外面额..额额额.

残花月 2021-11-25 02:36:30

回复
就是tomcat不想让公网用户访问到

长安忆 2021-11-25 01:50:53

在实际有域名的情况下是没有这样的问题的,因为有域名了,就不需要/site了.懂?然后tomcat配置下域名关联即可.

永不分离 2021-11-25 01:47:51

在实际有域名的情况下是没有这样的问题的,因为有域名了,就不需要/site了.懂?然后tomcat配置下域名关联即可.

眼眸 2021-11-25 00:49:39

我真实的应用是放在tomcat的webapps下的site文件夹下,所以是从localhost:8080/site/来访问,tomcat下还有其他的应用。

夜无邪 2021-11-24 23:03:47

你rewrite的时候,为什么都多带 一个 /site/  呢

月亮是我掰弯的 2021-11-24 16:06:43

然后是struts里面的配置:

<action name="index" class="indexPageAction" method="indexPage">
<result name="success" type="redirectAction">another</result>
</action>

先谢谢啦~

最偏执的依靠 2021-11-23 01:56:40

#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;

        }

    }

}

疑心病 2021-11-21 12:22:26

贴下配置,全部的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文