整合nginx+fastDFS时,图片文件都能成功上传至fastDFS,但是生成的链接就是访问不到资源。
在确定各种配置都没问题之后。
又检查了一下nginx.conf配置,自己添加的如下配置,显然没有任何问题。
server {
listen 81;
server_name localhost;
location ~/group1/M00 {
root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}
经过分析,发现是服务器拒绝了浏览器的请求。
1、首先想到检查服务器防火墙,发现防火墙之前已经被我关闭。所以不是本机防火墙的问题。
2、由于用的是阿里云ECS服务器,之前有一次也遇到过端口不能访问的问题,想着去检查了一下安全组,打开对应端口。
做完上面两步,使用
./nginx -s reload
依旧被拒绝访问。
这可头疼死了,反复检查修改配置文件,反复使用./nginx -s reload
,就是没反应。急死了个人。
聪明的小伙伴可能已经猜出来了,./nginx -s reload
没错,就是他捣的鬼。我总想着刷新配置文件,反复使用这个命令,奈何就是没有卵用。
最后
ps -ef | grep nginx
找到nginx的两个进程,
kill -9 +两个进程的对应pid
强制干掉他们,当然也可以不那么暴力,也可以在sbin目录下使用./nginx -s quit
关闭nginx。
最终在sbin目录下重新启动nginx
./nginx
问题解决。
reload不生效的可能原因:
1、nginx -s reload 是平滑重启,不会强制结束正在工作的连接,需要等所有连接都结束才会重启。而我当时就比较着急,不停的刷新,可能会有这方面原因。
2、reload遇到报错静默停止,后面跑的还是以前的进程。遇到这种情况,最好先用nginx -t查看配置文件,等配置文件success之后再使用nginx -s reload。我的配置文件没问题,所以应该是第一个出问题了。
当然 可以在sbin目录下用./nginx -t && ./nginx -s reload && sudo tail -f /var/log/nignx/error.log
代替./nginx -s reload
,就能避免很多问题了。