https://github.com/sunshinelyz/mykit-delay
写在前面
文章已收录到:https://gitee.com/binghe001/technology-binghe 和 https://github.com/sunshinelyz/technology-binghe 小伙伴们别忘记给我 Star 呦!!
问题重现
- upstream file {
- server 192.168.175.110:80 max_fails=3;
- }
- server {
- listen 80;
- server_name 192.168.175.101;
- location / {
- root html;
- index index.html index.htm;
- #允许cros跨域访问
- add_header 'Access-Control-Allow-Origin' '*';
- #proxy_redirect default;
- #跟代理服务器连接的超时时间,必须留意这个time out
- proxy_connect_timeout 10;
- }
- location ~/file {
- add_header 'Access-Control-Allow-Origin' '*';
- add_header 'Access-Control-Allow-Credentials' 'true';
- proxy_pass http://file;
- proxy_set_header Host $host:$server_port;
- }
- }
我在192.168.175.110服务器上配置的Ngin如下所示。
- server {
- listen 80;
- server_name 192.168.175.110;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- root html;
- index index.html index.htm;
- #允许cros跨域访问
- add_header 'Access-Control-Allow-Origin' '*';
- #proxy_redirect default;
- #跟代理服务器连接的超时时间,必须留意这个time out
- proxy_connect_timeout 10;
- }
- location ~/group([0-9]){
- root /data/fastdfs/storage/data;
- ngx_fastdfs_module;
- }
- }
其实,问题的定位也比较简单,就是前端访问时多加了一个file前缀。那么,我们该如何解决这个问题呢?
问题解决
既然定位到问题了,那我们下一步就是要解决这个问题。思路也比较简单,就是在192.168.175.101服务器上接收到请求时将file前缀去掉。那如何去掉呢?
其实也很简单,只需要在192.168.175.101服务器上的Nginx上添加如下配置。
- location ^~/file/ {
- 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_set_header X-NginX-Proxy true;
- proxy_pass http://file/;
- }
此时,192.168.175.101服务器上的Nginx配置如下所示。
- upstream file {
- server 192.168.175.110:80 max_fails=3;
- }
- server {
- listen 80;
- server_name 192.168.175.101;
- location / {
- root html;
- index index.html index.htm;
- #允许cros跨域访问
- add_header 'Access-Control-Allow-Origin' '*';
- #proxy_redirect default;
- #跟代理服务器连接的超时时间,必须留意这个time out
- proxy_connect_timeout 10;
- }
- location ^~/file/ {
- 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_set_header X-NginX-Proxy true;
- proxy_pass http://file/;
- }
- }
知识扩展
nginx反向代理配置如何去除前缀?
方法一:加"/"
- upstream pay {
- server localhost:8089 weight=5;
- }
- upstream order {
- server localhost:8090 weight=5;
- }
- server {
- listen 80;
- server_name binghe.com;
- location ^~/pay/ {
- 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_set_header X-NginX-Proxy true;
- proxy_pass http://pay/;
- }
- location ^~/order/ {
- 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_set_header X-NginX-Proxy true;
- proxy_pass http://order/;
- }
- }
^~/pay/表示匹配前缀是pay的请求,proxy_pass的结尾有/, 则会把/pay/*后面的路径直接拼接到后面,即移除pay。
方法二:rewrite
- upstream pay {
- server localhost:8089 weight=5;
- }
- upstream order {
- server localhost:8090 weight=5;
- }
- server {
- listen 80;
- server_name binghe.com;
- location ^~/pay/ {
- 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_set_header X-NginX-Proxy true;
- rewrite ^/user/(.*)$ /$1 break;
- proxy_pass http://pay;
- }
- location ^~/order/ {
- 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_set_header X-NginX-Proxy true;
- rewrite ^/order/(.*)$ /$1 break;
- proxy_pass http://order;
- }
- }
文章分享结束,Nginx配置问题导致FastDFS无法访问?和的答案你都知道了吗?欢迎再次光临本站哦!
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7120.html
用户评论
唉,又遇到Nginx的问题了,我记得FastDFS是用的HTTP协议吧?
有5位网友表示赞同!
这个标题听着有点吓人,到底是什么情况啊?
有5位网友表示赞同!
平时不太接触这些技术,不知道具体问题是怎么产生的。
有7位网友表示赞同!
Nginx配置搞出问题,确实让人头疼,快修复吧!
有16位网友表示赞同!
还有人在用FastDFS吗?最近主流的似乎都是其他方案了。
有5位网友表示赞同!
51CTO的博客文章挺多的,这篇文章估计是技术交流的那种。
有15位网友表示赞同!
如果是配置问题的话,应该可以查阅文档或者论坛求助吧?
有13位网友表示赞同!
Nginx和FastDFS哪个更适合做文件存储呢?有人比较过吗?
有12位网友表示赞同!
这个标题感觉像是吐槽的语气,作者是不是遇到了什么难题?
有18位网友表示赞同!
如果遇到问题,找专业的人帮忙解决最靠谱!
有12位网友表示赞同!
看来Nginx配置确实需要花时间去学习和实践。
有16位网友表示赞同!
"都是"两个字把责任都摆在了Nginx身上,哈哈,真幽默!
有5位网友表示赞同!
技术问题总会有,关键在于如何解决,不要被困难吓倒!
有12位网友表示赞同!
这篇文章应该会在一些技术社区引起共鸣吧?
有9位网友表示赞同!
学习一下Nginx的配置方法,以后遇到类似问题就能自己处理。
有6位网友表示赞同!
文章里会不会有具体的解决方案啊?求详细步骤的帮助!
有11位网友表示赞同!
感觉标题说的有点耸动,真实情况可能不太一样呢?
有12位网友表示赞同!
这种技术博客文章分享还挺好用的,可以让大家相互学习进步。
有18位网友表示赞同!
51CTO的文章质量怎么说呢?你们觉得怎么样?
有18位网友表示赞同!
希望这篇文章能够帮助到遇到相同问题的同学!
有12位网友表示赞同!