中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決Nginx引起的圖片顯示過慢,文件下載不完全問題

發布時間:2021-10-29 17:24:22 來源:億速云 閱讀:652 作者:iii 欄目:開發技術

這篇文章主要講解了“怎么解決Nginx引起的圖片顯示過慢,文件下載不完全問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決Nginx引起的圖片顯示過慢,文件下載不完全問題”吧!

問題定位

經過一系列的排查(中間過程我就省略了,直接寫重點了!),最終定位到是Nginx的問題。當我打開這位讀者的網站后臺管理系統,發現圖片顯示非常慢,在Nginx前端代理上查出如下錯誤信息。

[error] 28423#0: *5 connect() failed (111: Connection refused) while connecting to upstream

直接在后臺服務器上用后臺服務器的IP地址去訪問,發現速度相當快,于是懷疑是Nginx的配置問題。

注意:當下載大的附件,或是頁面中有大圖片時,就會下載中斷或是圖片無法顯示,也許你會說我用的Nginx缺省的配置也從來沒有碰到過這種問題呀!我想說的是:那是因為你的網站沒有大文件,至少沒有大到使用Nginx的默認配置加載不出來。

這里,我給出一段Nginx的配置,如下所示。

location /file {      root /home/file;      index  index.html index.htm;      proxy_set_header X-Real-IP $remote_addr;      proxy_set_header   Host $host;      proxy_pass http://127.0.0.1:8080 ;      client_max_body_size     100m;      client_body_buffer_size  128k;      proxy_connect_timeout    600;      proxy_read_timeout       600;      proxy_send_timeout       600;      proxy_buffer_size        32k;      proxy_buffers          4 64k;      proxy_busy_buffers_size 64k;      proxy_temp_file_write_size 64k; }

其中幾個重要的參數如下所示。

  • proxy_connect_timeout 600; #nginx跟后端服務器連接超時時間(代理連接超時)

  • proxy_read_timeout 600; #連接成功后,后端服務器響應時間(代理接收超時)

  • proxy_send_timeout 600; #后端服務器數據回傳時間(代理發送超時)

  • proxy_buffer_size 32k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小

  • proxy_buffers 4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置

  • proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)

  • proxy_temp_file_write_size 16k; #設定緩存文件夾大小,大于這個值,將從upstream服務器傳

看到這里,發現問題了,這位讀者的Nginx有下面一行配置。

proxy_temp_file_write_size 16k;

而他服務器上的圖片基本都在100K~5M之間。

問題就出在proxy_temp_file_write_size上,當服務器上的文件超過該參數設置的大小時,Nginx會先將文件寫入臨時目錄(缺省為Nginx安裝目下/proxy_temp目錄),缺省Nginx是以nobody身份啟動的,用ls  -al 命令查看proxy_temp目錄  nobody是proxy_temp目錄的所有者,怪了那為什么沒權限呢?接下來查看proxy_temp的父目錄既Nginx安裝目錄。發現nobody競然沒權限,怪不得會出現上面的問題。

解決問題

定位到問題,接下來解決問題就比較簡單了。可以使用兩種方式解決這個問題,如下所示。

  • 設置任何人都可以寫 proxy_temp目錄,重啟 Nginx 即可解決。

  • 直接更改proxy_temp_file_write_size的值,將其修改為大于圖片和文件的大小,重啟Nginx。

如果是以第一種方式解決問題的話,比如我的proxy_temp目錄是/usr/local/nginx/proxy_temp,用如下命令將/usr/local/nginx/proxy_temp目錄設置為任何人都可以寫,問題解決。

chmod -R 777 /usr/local/nginx/proxy_temp/

如果是使用第二種方式解決問題的話,就可以直接修改nginx.conf文件,如下所示。

location /file {      root /home/file;      index  index.html index.htm;      proxy_set_header X-Real-IP $remote_addr;      proxy_set_header   Host $host;      proxy_pass http://127.0.0.1:8080 ;      client_max_body_size     100m;      client_body_buffer_size  256k;      proxy_connect_timeout    1200;      proxy_read_timeout       1200;      proxy_send_timeout       6000;      proxy_buffer_size        32k;      proxy_buffers            4 64k;      proxy_busy_buffers_size  128k;      proxy_temp_file_write_size 10m; }

感謝各位的閱讀,以上就是“怎么解決Nginx引起的圖片顯示過慢,文件下載不完全問題”的內容了,經過本文的學習后,相信大家對怎么解決Nginx引起的圖片顯示過慢,文件下載不完全問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿瓦提县| 东丽区| 金坛市| 郎溪县| 三门峡市| 青龙| 吴桥县| 大名县| 顺平县| 达尔| 通渭县| 灵武市| 嘉荫县| 棋牌| 恭城| 邻水| 青岛市| 黑龙江省| 扎赉特旗| 马龙县| 延吉市| 东平县| 东城区| 呼玛县| 台江县| 阿鲁科尔沁旗| 类乌齐县| 东光县| 南漳县| 安宁市| 兰州市| 克东县| 读书| 永靖县| 江孜县| 两当县| 达日县| 合川市| 博爱县| 五莲县| 买车|