开发者社区> 问答> 正文

请教大神有关nginx redirect的问题

本人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;
        }
} 

展开
收起
落地花开啦 2016-06-03 16:24:48 4436 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

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

    server {
    
            listen       8080;
            server_name  localhost; 
    2019-07-17 19:26:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载