nginx做动静分离,使用prox_pass时访问首页报错:Whitelabel Error Page


参照一些教程和博客的做动静分离配置,静态文件位于opt/static目录下,后端部分由springboot打包部署tomcat。

问题配置如下(server部分): 

 1        listen       80;
 2        server_name  49.235.14.*;
 3        root   /opt/static;
4 index page/index.html; 5 location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ 6 { 7      expires 30d; 8 } 9 #静态文件交给nginx处理 10 location ~ .*\.(js|css)?$ 11 { 12      expires 1h; 13 } 14 15 location / { 16 proxy_set_header X-Real-IP $remote_addr; 17 # 请求头中Host信息 18 proxy_set_header Host $host; 19 # 代理路由信息 20 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 21 # 真实的用户访问协议 22 proxy_set_header X-Forwarded-Proto $scheme; 23 proxy_pass http://127.0.0.1:8080; 24 }

此时直接访问ip地址报错:

 

 

 若换成直接访问:  ip/root路径/index路径文件  。又可以访问到首页!

这表明index.html并没有被location中的静态配置规则匹配,而是进入了location / 匹配,请求给了代理 proxy_pass   127.0.0.1:8080,访问了后端部分。

 

 

 

 

于是修改配置,增加 location = / {} 

此配置只对站点根目录进行精确匹配,匹配后不在搜索匹配其他location正则;

改为规则如下:

 1    listen       80;
 2     server_name  49.235.14.*;
 3     root   /opt/static;
 4     location = / {
 5          index page/index.html ;
 6     }
 7      #静态文件交给nginx处理
 8      location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
 9      {    
10         expires 30d;
11      }
13 location ~ .*\.(js|css)?$ 14 { 15 expires 1h; 16 } 17 18 location / { 19 proxy_set_header X-Real-IP $remote_addr; 20 # 请求头中Host信息 21 proxy_set_header Host $host; 22 # 代理路由信息 23 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 24 # 真实的用户访问协议 25 proxy_set_header X-Forwarded-Proto $scheme; 26 proxy_pass http://127.0.0.1:8080; 27    } 28 29

 

再次访问成功,后台也打印出相应日志,实现前后端分离。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM