nginx redirect问题

Jason.Xie 发布于 2016/01/12 13:24
阅读 1K+
收藏 0

本人nginx初学者,现在遇到问题,求大神解答。谢谢!

现在自己做的一个demo,希望把前端和后端分离,所以用nginx做转发,所有静态文件都放在D:\workspace\app目录下,后端服务器用的是tomcat,后端框架用的是spring mvc。

例:

登录页面http://localhost/login.html,不加端口会默认80,nginx请求正常。

点击登录转到8080端口,由tomcat > spring mvc处理。

spring mvc处理成功之后通过redirect:/main.html,重定向到登录成功后的页面。

重定向之后会默认加上8080端口(http://localhost:8080/main.html),8080端口直接被tomcat处理了,没经过nginx。

main.html放在D:\workspace\app(nginx配置的目录)。好像nginx的proxy_redirect 配置无效。

求解决,小白跪求。

下面是nginx 配置文件:

server {
        listen       80;
        server_name  localhost;
        access_log  logs/host.access.log main;
        location / {
            root D:\workspace\app;
            index index.html index.htm;
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_redirect http://localhost:8080 /;
        }


        location ~* \.(html|htm|gif|jpg|jpeg|png|bmp|ico|css|js|txt|woff|ttf|svg|docx|pdf|xlsx|doc|map|json)$ {
            root D:\workspace\app;
            expires      24h;
        }
}

加载中
0
birdy1901
birdy1901

目测配置文件是没问题的

你可以运行一下这个命令看一下 location 头是什么

curl -I 你登录那个url

看看 tomcat 返回的头对吗

0
空香沾手
空香沾手

你只 listen       80, 其他端口如8080,nginx并不会处理,所以就交给tomcat了。

再加一个:

server {

        listen       8080;
        server_name  localhost;

        .......

返回顶部
顶部