TravelWithYou

Results 2 issues of TravelWithYou

一、软件版本 Fastdfs版本:V6.07 Nginx版本:V1.20.0 Fastdfs-nginx-module 版本:V1.22 二、问题现象 生产线部署fastdfs文件服务器集群2台,同一个group,互相备份。在前端端上传文件后,在前端模块展示文件地址出错,展示信息为:400 bad request The plain HTTP request was sent to HTTPS port。过了1-2s后,重新访问返回的地址,恢复正常。 三、问题分析 出现这个问题后,首先想到的是前端预览插件访问文件时是否将https头替换成了http,导致400错误。于是让前端做了个功能,后端返回成功后,立即打开新页面访问,结果还是出现同样的400错误,于是排除前端访问协议头不正确的可能。 接下来就进行了服务器问题排查,由于我们部署了两台fastdfs机器,将两台机器上nginx的访问日志access.log拉下来后,发现访问文件的get请求同时出现在两台服务器的access.log上,两个状态码均是400。 两个日志进行对比,首先发现的就是后者带了redirect,前者没有。熟悉fastdfs的同学可能知道,fastdfs是一个高可用的文件存储访问系统,这边的redirect正是fastdfs-nginx模块访问文件的策略,当请求打到同一个group的某一台机器上时,fastdfs-nginx-首先会从本地路径去找文件,当找不到时,会进行请求转发,这个转发有两种模式,配置在mod_fastdfs.conf,默认是proxy,如图上注释所说:当请求的内容不在本地服务上时,将请求转发给同组的其它服务。 因此,大概猜想到了400bad request的原因为,当一个请求打到groupX的A机器上时,由于文件是刚刚才上传,A机器还没来得及从同组的B机器同步,故将请求转发给了B机器,但是重点来了,我们访问A机器时使用的是https协议+443端口,但是A机器转发请求时,却变成了http协议+443端口。由于B机器上nginx监听的443端口需要有ssl协议,此时就会报错:400 bad request The plain HTTP request...

### Context When we use the win7operating system, we often encounter iams for about 1 minute. We also get the stuck log.l hope you can helpme see how to avoid...

bug