千家信息网

Nginx FastDFS不能访问了怎么办

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Nginx FastDFS不能访问了怎么办",在日常操作中,相信很多人在Nginx FastDFS不能访问了怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2026年11月01日Nginx FastDFS不能访问了怎么办

这篇文章主要介绍"Nginx FastDFS不能访问了怎么办",在日常操作中,相信很多人在Nginx FastDFS不能访问了怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Nginx FastDFS不能访问了怎么办"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

问题重现

在服务器上搭建集群时,统一对外访问的接口为http://192.168.175.110,前端童鞋访问时,是通过http://192.168.175.101访问的,并且前端加了一个前缀file,也就是通过http://192.168.175.101/file来访问的。第一时间我想到的是直接将前端的请求通过Nginx转发到192.168.175.110服务器。在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时间不能超过75秒,当一台服务器当掉时,过10秒转发到另外一台服务器。   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时间不能超过75秒,当一台服务器当掉时,过10秒转发到另外一台服务器。      proxy_connect_timeout 10;  }    location ~/group([0-9]){   root /data/fastdfs/storage/data;   ngx_fastdfs_module;  } }

此时,就存在一个问题:通过file前缀将请求转发到192.168.175.110服务器时,会返回400状态码。

其实,问题的定位也比较简单,就是前端访问时多加了一个file前缀。那么,我们该如何解决这个问题呢?

问题解决

一般情况下,Nginx的反向代理,只会替换域名或者IP部分,其他部分会按照原样进行转发。也就是说,前端访问http://192.168.175.101/file时,会被转发到http://192.168.175.110/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时间不能超过75秒,当一台服务器当掉时,过10秒转发到另外一台服务器。   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/;     } }

此时,再次访问http://192.168.175.101/file时,就被转发到http://192.168.175.110上,能够正确访问文件服务接口。

知识扩展

nginx反向代理配置如何去除前缀?

使用Nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法:

方法一:加"/"

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不能访问了怎么办"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

服务 服务器 问题 前缀 时间 代理 前端 配置 怎么办 方法 学习 就是 接口 不同 也就是 域名 文件 更多 知识 部分 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 工业互联网科技新基建 北京互联网科技公司 科技服务与互联网 互联网科技排名 农村开互联网科技讲堂 中盈科技互联网信息有限公司 央行互联网金融科技公司 移动互联网科技股 互联网为啥属于高科技 花神(南京)互联网科技有限公司 电子科技大学互联网创业大赛 互联网科技和信息 科技大学互联网 卡尔迅互联网科技有限公司 互联网科技包装股份有限公司上市 南京一网一红互联网科技有限公司 陕西彩京云互联网科技有限公司 互联网科技大会大佬 河南商务圈互联网科技有限公司 山东亿川互联网科技有限责任公司 精品咖啡豆 互联网科技革命 科技大学互联网专业好不好 阿里巴巴算科技企业还是互联网 以后互联网后是啥科技 深圳育鹏互联网科技有限公司招聘 易企秀互联网科技是做什么的 容联科技互联网电商 陕西九四连强互联网科技有限公司 玉溪新华互联网科技怎么选
0