導航:首頁 > IDC知識 > nginx圖片伺服器配置

nginx圖片伺服器配置

發布時間:2020-12-05 23:44:42

1、Nginx作為上傳圖片伺服器的時候,java.net.SocketException: Permission denied: connect

lnmp架構 直接放nginx的web文件夾中,通過cgi解析php返回給nginx,如果是lnmpa架構,就是多了個apache,nginx負責分發請求,然後apache調用php_mod解析php,最後返回給nginx

如果是負載均衡,nginx分發請求,每個請求可能請求不同的伺服器,但是每個伺服器的網站程序應該是一致的,並且每個伺服器上都部署了php環境和程序,然後返回給請求者nginx輸出頁面。

2、怎麼上傳圖片到nginx伺服器?

最簡單方法,下載SSH客戶端,SSH Secure File Transfer Client用這個可以直接上傳

3、最前面兩台NGINX+keepalived可不可以同時承擔WEB的高可用負載均衡和圖片伺服器並實現高可用?

完全可以實現的
nginx可以設置多個server,相互之間互不影響,用keepalived做負載的應用可以和圖版片服務權器設置為不同的server,當然,也可以將圖片伺服器設置到兩個伺服器,也使用keepalived做圖片伺服器負載均衡。

4、web和圖片伺服器都是nginx的,要加防盜鏈要在哪個裡面加?

nginx的配置裡面檢查referer

5、網站伺服器可以混用么?假如有三個伺服器,一個用nginx放圖片,另外兩個用apache ,這樣能來么?有什麼優缺點?

可以混用,優點是寬頻分流,減輕單台伺服器壓力。一台做WEB,一台做資料庫,一台做附件(圖片、流媒體、下載文件),這個需要配合網站開發技術才能協調好。

6、我在用nginx配置靜態圖片伺服器時,出現permission denied

檢查nginx 是否有 /home 、 /home/zk 這兩個目錄的訪問許可權

7、關於nginx的流量疑惑!

問(1)因為你們的copy流量統計是基於webserver傳輸數據量的統計,而並非對http請求的統計。因此導致如圖所示的統計結果也是正常的。
原因:nginx在進行反向代理的時候,會對原始的http請求進行一定的修改,還會做一些防攻擊啦,過濾無法匹配到的url啦等等的處理。因此做負載均衡的nginx的流量理論上要比下層的apache伺服器的流量的總量要大。這是正常的。

問(2)nginx進來和出去的流量在一般情況下肯定是不相等的,因為,nginx要返回數據給用戶哈,用戶訪問一個url,流量能有多大,但是返回一個網頁數據量怎麼著也得幾K吧,如果是圖片那就更大了。因此,你的圖中的統計是正確的。

問(3)關於流量高峰的時候,監控無法獲取nginx的信息,這個建議看一下流量高峰ningx所在機器的cpuidle,網路資源消耗等情況。

問(4)nginx也會對相應的數據進行壓縮處理,或者進行其他的過濾處理,這也會導致出口的數據流量不一致。

8、nginx 做圖片代理伺服器,為什麼我輸入原來的名字報404,重名命之後就可以訪問?

肯能是文件許可權問題
修改名稱 就把文件許可權改為你ftp用戶了

9、如何藉助PageSpeed,為Nginx網站伺服器提速

PageSpeed的功能特性

PageSpeed模塊可以使用數量眾多的重寫"過濾器",每個過濾器都可以選擇性地開啟/關閉,從而自動進行各種優化(比如,減小文檔大小、減少HTTP請求數據、減少HTTP往返次數以及縮短DNS解析時間)。

下面是ngx_pagespeed支持的其中一些過濾器。想了解支持的全部過濾器,請參閱官方文檔。

Collapse Whitespace(壓縮空白):通過把HTML網頁中的多處連續空白換成一處空白,減少帶寬使用量。
Canonicalize JavaScript Libraries(規范化轉換JavaScript庫):通過自動把流行的JavaScript庫換成免費託管的JavaScript庫(比如由谷歌託管),減少帶寬使用量。
Combine CSS(合並CSS):通過把多個CSS文件合並成一個CSS文件,減少HTTP請求數量。
Combine JavaScript(合並JavaScript):通過把多個JavaScript文件合並成一個JavaScript文件,減少HTTP請求數量。
Elide Attributes(省略屬性):通過刪除由默認屬性指定的標簽,縮小文檔大小。
Extend Cache(擴展緩存):通過優化網頁資源的可緩存性,減少帶寬使用量。
Flatten CSS Imports(精簡CSS導入):通過刪除CSS文件中的@import,減少HTTP請求往返次數。
Lazyload Images(延時載入圖片):延時載入在客戶端瀏覽器上看不見的圖片。
Minify JavaScript(縮小JavaScript):通過縮小JavaScript,減少帶寬使用量。
Optimize Images(優化圖片):通過引入更多的內嵌圖片、壓縮圖片,或者將GIF圖片轉換成PNG圖片,優化圖片分發。
Pre-Resolve DNS(預解析DNS):通過預解析DNS,縮短DNS解析時間。
Prioritize Critical CSS(優化載入關鍵CSS規則):重寫CSS文件,以便首先載入渲染頁面的CSS規則。

與Apache網站伺服器不一樣,Nginx模塊無法在運行時動態載入,而是必須在編譯時載入。截至本文截稿時,ngx_pagespeed模塊並
未內置在隨主要Linux發行版(比如Fedora
19)發布的Nginx程序包中。因而,想使用Nginx中的PageSpeed,你需要利用源代碼來構建Nginx。

藉助ngx_pagespeed,構建和安裝Nginx

安裝用於構建nginx和ngx_pagespeed的必備要素。

在Debian、Ubuntu或Linux Mint上:
$ sudo apt-get install build-essential zlib1g-dev libpcre3-dev

在Fedora、CentOS或RHEL上:
$ sudo yum install gcc-c++ pcre-devel zlib-devel make wget

下載並安裝ngx_pagespeed源代碼,如下所示。ngx_pagespeed會被解壓縮到/usr/local/nginx/moles/ngx_pagespeed-1.7.30.3-beta
$ sudo mkdir -p /usr/local/nginx/moles $ wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.7.30.3-beta.tar.gz $ sudo tar xvfvz v1.7.30.3-beta.tar.gz -C /usr/local/nginx/moles --no-same-owner

下載預構建的PSOL(PageSpeed優化庫,https://developers.google.com/speed/pagespeed/psol),並將它安裝到ngx_pagespeed目錄下:
$ wget https://dl.google.com/dl/page-speed/psol/1.7.30.3.tar.gz $ sudo tar xvfvz 1.7.30.3.tar.gz -C /usr/local/nginx/moles/ngx_pagespeed-1.7.30.3-beta --no-same-owner $ sudo find /usr/local/nginx/moles/ngx_pagespeed-1.7.30.3-beta/ -type d -exec chmod +rx {} \; $ sudo find /usr/local/nginx/moles/ngx_pagespeed-1.7.30.3-beta/ -type f -exec chmod +r {} \;

從http://nginx.org/en/download.html,下載Nginx的最新穩定版。
$ wget http://nginx.org/download/nginx-1.4.4.tar.gz

最後,在ngx_pagespeed模塊啟用的情況下,編譯Nginx,並安裝它,如下所示。
$ tar xvfvz nginx-1.4.4.tar.gz $ cd nginx-1.4.4 $ ./configure --add-mole=/usr/local/nginx/moles/ngx_pagespeed-1.7.30.3-beta --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx $ make $ sudo make install

你應該確認,ngx_pagespeed模塊已添加到安裝的Nginx系統上,如下所示。
$ /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.4.4 built by gcc 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) configure arguments: --add-mole=/usr/local/nginx/moles/ngx_pagespeed-1.7.30.3-beta . . . .

配置Nginx中的ngx_pagespeed模塊

想啟用並配置ngx_pagespeed,就要編輯Nginx配置的server部分。nginx.conf的下面這個示例表明了如何指定一個或多個PageSpeed過濾器。
$ sudo vi /etc/nginx/nginx.conf server { # 偵聽的埠 listen 80; # 伺服器名稱 server_name xmolo.com www.xmolo.com; # 記下根目錄 root /usr/local/nginx/html; # 訪問日誌 access_log /var/log/nginx/access.log main; # 啟用ngx_pagespeed pagespeed on; # 在此放置一個或多個pagespeed過濾器。 }

說到指定PageSpeed過濾器,有兩種不同的級別可供你選擇:CoreFilters和PassThrough。除非有所指定,否則默認情況下使用CoreFilters。

對新手用戶而言:使用CoreFilters

CoreFilters含有一系列PageSpeed過濾器,谷歌認為這些過濾器對大多數網站來說是安全的。如果啟用CoreFilters,你就
自動啟用了一系列"安全"規則。所以,推薦新手用戶採用這種方法。如果你願意,也可以禁用CoreFilters中的某個或某些過濾器,或者選擇性地啟用
額外的過濾器。下面這個例子表明了使用CoreFilters的ngx_pagespeed配置。
server { # 偵聽的埠 listen 80; # 伺服器名稱 server_name xmolo.com www.xmolo.com; # 記下根目錄 root /usr/local/nginx/html; # 訪問日誌 access_log /var/log/nginx/access.log main; # 啟用ngx_pagespeed pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; # 啟用CoreFilters pagespeed RewriteLevel CoreFilters; # 禁用CoreFilters中的某些過濾器 pagespeed DisableFilters rewrite_images; # 選擇性地啟用額外的過濾器 pagespeed EnableFilters collapse_whitespace; pagespeed EnableFilters lazyload_images; pagespeed EnableFilters insert_dns_prefetch; }

想了解CoreFilters中的全部過濾器,請參閱官方文檔。

對高級用戶而言:使用PassThrough

如果是高級用戶,你可以使用PageThrough級別,你可以手動啟用個別過濾器。
server { # 偵聽的埠 listen 80; # 伺服器名稱 server_name xmolo.com www.xmolo.com; # 記下根目錄 root /usr/local/nginx/html; # 訪問日誌 access_log /var/log/nginx/access.log main; # 啟用ngx_pagespeed pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; # 禁用CoreFilters pagespeed RewriteLevel PassThrough; # 啟用壓縮空白過濾器 pagespeed EnableFilters collapse_whitespace; # 啟用JavaScript庫卸載 pagespeed EnableFilters canonicalize_javascript_libraries; # 把多個CSS文件合並成一個CSS文件 pagespeed EnableFilters combine_css; # 把多個JavaScript文件合並成一個JavaScript文件 pagespeed EnableFilters combine_javascript; # 刪除帶默認屬性的標簽 pagespeed EnableFilters elide_attributes; # 改善資源的可緩存性 pagespeed EnableFilters extend_cache; # 更換被導入文件的@import,精簡CSS文件 pagespeed EnableFilters flatten_css_imports; pagespeed CssFlattenMaxBytes 5120; # 延時載入客戶端看不見的圖片 pagespeed EnableFilters lazyload_images; # 啟用JavaScript縮小機制 pagespeed EnableFilters rewrite_javascript; # 啟用圖片優化機制 pagespeed EnableFilters rewrite_images; # 預解析DNS查詢 pagespeed EnableFilters insert_dns_prefetch; # 重寫CSS,首先載入渲染頁面的CSS規則 pagespeed EnableFilters prioritize_critical_css; }

另外的配置步驟:

創建將由Nginx寫入的一個文件緩存目錄。
$ sudo mkdir /var/ngx_pagespeed_cache $ sudo chown nginx:nginx /var/ngx_pagespeed_cache

為了方便起見,為Nginx創建一個初始化腳本。
$ wget https://github.com/MovLib/www/raw/master/bin/init-nginx.sh $ sudo mv init-nginx.sh /etc/init.d/nginx $ sudo chmod 0755 /etc/init.d/nginx

最後,啟動Nginx。

$ sudo /etc/init.d/nginx start

與nginx圖片伺服器配置相關的知識