本人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;
}
}
你只 listen 80, 其他端口如8080,nginx并不会处理,所以就交给tomcat了。
再加一个:
server {
listen 8080;
server_name localhost;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。