您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了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; }
其中幾個重要的參數如下所示。
看到這里,發現問題了,這位讀者的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目錄是/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中出現圖片顯示過慢,下載不完全的問題怎么辦的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。