自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖片顯示過(guò)慢,文件下載不完全,竟然是Nginx的鍋!!

開(kāi)發(fā) 架構(gòu) 服務(wù)器
最近,一名讀者跟我說(shuō)他通過(guò)瀏覽器訪問(wèn)自己的服務(wù)器時(shí),圖片顯示的非常慢,以至于在瀏覽器中都無(wú)法完全加載出來(lái),下載文件時(shí),更是惱火,文件根本就無(wú)法完全下載下來(lái)。

 作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開(kāi)源半年多以來(lái),已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。為使更多童鞋受益,現(xiàn)給出開(kāi)源框架地址:https://github.com/sunshinelyz/mykit-delay

[[334524]]

寫在前面

最近,一名讀者跟我說(shuō)他通過(guò)瀏覽器訪問(wèn)自己的服務(wù)器時(shí),圖片顯示的非常慢,以至于在瀏覽器中都無(wú)法完全加載出來(lái),下載文件時(shí),更是惱火,文件根本就無(wú)法完全下載下來(lái)。而且奇怪的是這位讀者所在的網(wǎng)絡(luò)是沒(méi)啥問(wèn)題的。于是,我便開(kāi)始幫他排查各種問(wèn)題。。。

問(wèn)題定位

經(jīng)過(guò)一系列的排查(中間過(guò)程我就省略了,直接寫重點(diǎn)了!),最終定位到是Nginx的問(wèn)題。當(dāng)我打開(kāi)這位讀者的網(wǎng)站后臺(tái)管理系統(tǒng),發(fā)現(xiàn)圖片顯示非常慢,在Nginx前端代理上查出如下錯(cuò)誤信息。

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

直接在后臺(tái)服務(wù)器上用后臺(tái)服務(wù)器的IP地址去訪問(wèn),發(fā)現(xiàn)速度相當(dāng)快,于是懷疑是Nginx的配置問(wèn)題。

注意:當(dāng)下載大的附件,或是頁(yè)面中有大圖片時(shí),就會(huì)下載中斷或是圖片無(wú)法顯示,也許你會(huì)說(shuō)我用的Nginx缺省的配置也從來(lái)沒(méi)有碰到過(guò)這種問(wèn)題呀!我想說(shuō)的是:那是因?yàn)槟愕木W(wǎng)站沒(méi)有大文件,至少?zèng)]有大到使用Nginx的默認(rèn)配置加載不出來(lái)。

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

  1. location /file { 
  2.      root /home/file; 
  3.      index  index.html index.htm; 
  4.      proxy_set_header X-Real-IP $remote_addr; 
  5.      proxy_set_header   Host $host; 
  6.      proxy_pass http://127.0.0.1:8080 ; 
  7.      client_max_body_size     100m; 
  8.      client_body_buffer_size  128k; 
  9.      proxy_connect_timeout    600; 
  10.      proxy_read_timeout       600; 
  11.      proxy_send_timeout       600; 
  12.      proxy_buffer_size        32k; 
  13.      proxy_buffers          4 64k; 
  14.      proxy_busy_buffers_size 64k; 
  15.      proxy_temp_file_write_size 64k; 

其中幾個(gè)重要的參數(shù)如下所示。

  • proxy_connect_timeout 600; #nginx跟后端服務(wù)器連接超時(shí)時(shí)間(代理連接超時(shí))
  • proxy_read_timeout 600; #連接成功后,后端服務(wù)器響應(yīng)時(shí)間(代理接收超時(shí))
  • proxy_send_timeout 600; #后端服務(wù)器數(shù)據(jù)回傳時(shí)間(代理發(fā)送超時(shí))
  • proxy_buffer_size 32k; #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小
  • proxy_buffers 4 32k; #proxy_buffers緩沖區(qū),網(wǎng)頁(yè)平均在32k以下的話,這樣設(shè)置
  • proxy_busy_buffers_size 64k; #高負(fù)荷下緩沖大小(proxy_buffers*2)
  • proxy_temp_file_write_size 16k; #設(shè)定緩存文件夾大小,大于這個(gè)值,將從upstream服務(wù)器傳

看到這里,發(fā)現(xiàn)問(wèn)題了,這位讀者的Nginx有下面一行配置。

  1. proxy_temp_file_write_size 16k; 

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

問(wèn)題就出在proxy_temp_file_write_size上,當(dāng)服務(wù)器上的文件超過(guò)該參數(shù)設(shè)置的大小時(shí),Nginx會(huì)先將文件寫入臨時(shí)目錄(缺省為Nginx安裝目下/proxy_temp目錄),缺省Nginx是以nobody身份啟動(dòng)的,用ls -al 命令查看proxy_temp目錄 nobody是proxy_temp目錄的所有者,怪了那為什么沒(méi)權(quán)限呢?接下來(lái)查看proxy_temp的父目錄既Nginx安裝目錄。發(fā)現(xiàn)nobody競(jìng)?cè)粵](méi)權(quán)限,怪不得會(huì)出現(xiàn)上面的問(wèn)題。

解決問(wèn)題

定位到問(wèn)題,接下來(lái)解決問(wèn)題就比較簡(jiǎn)單了??梢允褂脙煞N方式解決這個(gè)問(wèn)題,如下所示。

  • 設(shè)置任何人都可以寫 proxy_temp目錄,重啟 Nginx 即可解決。
  • 直接更改proxy_temp_file_write_size的值,將其修改為大于圖片和文件的大小,重啟Nginx。

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

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

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

  1. location /file { 
  2.      root /home/file; 
  3.      index  index.html index.htm; 
  4.      proxy_set_header X-Real-IP $remote_addr; 
  5.      proxy_set_header   Host $host; 
  6.      proxy_pass http://127.0.0.1:8080 ; 
  7.      client_max_body_size     100m; 
  8.      client_body_buffer_size  256k; 
  9.      proxy_connect_timeout    1200; 
  10.      proxy_read_timeout       1200; 
  11.      proxy_send_timeout       6000; 
  12.      proxy_buffer_size        32k; 
  13.      proxy_buffers            4 64k; 
  14.      proxy_busy_buffers_size  128k; 
  15.      proxy_temp_file_write_size 10m; 

當(dāng)然,我也幫這位讀者優(yōu)化了一些其他的配置項(xiàng)。

好了,今天就聊到這兒吧!別忘了點(diǎn)個(gè)贊,給個(gè)在看和轉(zhuǎn)發(fā),讓更多的人看到,一起學(xué)習(xí),一起進(jìn)步!!

本文轉(zhuǎn)載自微信公眾號(hào)「 冰河技術(shù)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系 冰河技術(shù)公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2020-12-29 05:39:44

日志服務(wù)環(huán)境

2015-09-01 10:42:15

編程規(guī)范完全指南

2017-04-13 08:46:41

oracle數(shù)據(jù)挖掘

2015-10-10 10:02:44

程序員面試指南

2014-09-19 10:03:18

Chrome

2021-06-01 06:03:28

Css前端CSS 特效

2024-01-02 16:43:58

2011-06-29 10:03:33

Qt Configure

2024-01-12 10:16:53

2020-09-29 06:45:49

JDK

2021-05-06 07:26:55

CSS 文字動(dòng)畫(huà)技巧

2021-02-09 00:46:45

區(qū)塊鏈加密貨幣工具

2024-08-05 01:28:26

2021-08-18 10:28:09

MySQL SQL 語(yǔ)句數(shù)據(jù)庫(kù)

2017-04-19 20:10:20

SQLJOIN

2019-04-12 15:00:11

2015-06-18 11:04:58

2020-12-15 08:05:40

路由器服務(wù)器網(wǎng)絡(luò)層

2021-07-28 06:51:08

Nacos代理模式

2024-09-27 11:38:49

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)