日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx+fastdfs 502异常解决

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx+fastdfs 502异常解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用fastdfs加兩臺storage,一臺做備份使用時,發現有一類文件名是以“ag-”開頭,使用<img>標簽即時顯示的時候會報502異常,

查看nginx的error.log得到

2017/09/25 17:39:09 [error] 13333#0: *30734 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 10.24.169.19, server: localhost, request: "GET /group1/M00/01/5E/ag-JjlnIzqmAdi3UAAOreY6LKcM688.jpg HTTP/1.1", upstream: "http://106.15.137.142:8081/group1/M00/01/5E/ag-JjlnIzqmAdi3UAAOreY6LKcM688.jpg?redirect=1", host: "10.135.237.203:8081"


分析一下客戶端與nginx的交互過程如下:


一般Nginx與Tracker裝在一臺服務器上,所以他們之間的通信一般不會時間太長而導致超時


但是Nginx與Storage一般不再一臺機器上,因此Nginx與Storage之間的通信可能會timeout,從而導致502異常。

所以需要在Nginx中添加如下配置

location /group1/M00{
? ? ? ? ? ? ? ? ? ? ? ? add_header Content-Disposition "attachment;filename=$arg_n";
? ? ? ? ? ? ? ? ? ? ? ? add_header Access-Control-Allow-Origin "*";
? ? ? ? ? ? ? ? ? ? ? ? root /home/ubuntu/fastdfs/nginx-link/data;
? ? ? ? ? ? ? ? ? ? ? ? ngx_fastdfs_module;
? ? ? ? ? ? ? ? ? ? ? ? proxy_connect_timeout 300s;
? ? ? ? ? ? ? ? ? ? ? ? proxy_send_timeout 300s;
? ? ? ? ? ? ? ? ? ? ? ? proxy_read_timeout 300s;

? ? ? ? ? ? ? ? }

后來發現,還是解決不了這個問題,繼續分析發現另外一臺的Storage上的文件是訪問不了的,檢查一看nginx_fastdfs_module沒有配置,添加上去后,重啟nginx,發現502的異常解決了但是偶爾會出現插入的圖片需要很長時間才能顯示出來。


講過一番思考后,發現這是Storage同步延遲的結果,大概是這樣的Tracker將文件放在StorageA上,但是訪問的時候,Tracker發現StorageB也是可用的,就返回了StorageB的IP與端口。但是此時StorageB還沒有此文件,所以一直等待,直到StorageB同步StorageA的數據。


查看Tracker的配置文件有如下配置:

# which storage server to download file
# 0: round robin (default)
# 1: the source storage server which the current file uploaded to
download_server=1


意思是選擇哪一個Storage 服務器去下載文件0代表輪詢,為默認值,1代表從當前文件的源文件服務器上下載文件

此時設為1,就好了。


那么Tracker是怎么判斷哪一臺是源務器的呢?是根據文件名,Tracker_Nginx_Module可以根據文件名反解出源服務器IP,文件時間戳,根據這兩點就可以找到源Storage服務器了。


參考:1.http://www.bubuko.com/infodetail-1873115.html

? ? ? ? ? ?2.http://blog.csdn.net/mr_smile2014/article/details/52118541

總結

以上是生活随笔為你收集整理的nginx+fastdfs 502异常解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。