开发者社区> 问答> 正文

请教大神有关nginx redirect的问题

落地花开啦 2016-06-03 16:24:48 2276

本人nginx初学者,现在遇到问题,求大神解答。谢谢!
现在自己做的一个demo,希望把前端和后端分离,所以用nginx做转发,所有静态文件都放在D:workspaceapp目录下,后端服务器用的是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:workspaceapp(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;
        }
} 
JSON 前端开发 JavaScript Java 应用服务中间件 区块链 nginx 数据格式 Spring
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:26:48

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

    server {
    
            listen       8080;
            server_name  localhost; 
    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题