成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

nginx代理文件服務(wù)器安全性 nginx代理nginx

Nginx性能調(diào)優(yōu)

本文翻譯自 Tuning NGINX for Performance

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)建站專業(yè)提供做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!

Nginx以高性能 負載均衡 、 緩存 和 web服務(wù)器 出名,支撐著世界上繁忙網(wǎng)站中的40%。大多數(shù)使用場景下,Nginx和Linux系統(tǒng)的默認配置表現(xiàn)較好,但是仍有必要做一些調(diào)優(yōu)以期達到最佳性能。這篇文章討論當調(diào)優(yōu)系統(tǒng)時需要考慮的一些Nginx和Linux配置。這些配置有很多,但是在本文里我們只涉及適合大多數(shù)用戶的配置。那些沒有涉及到的配置,只有那些對Nginx和Linux有深入理解的人,或者Nginx專家服務(wù)團隊推薦,才會考慮到。Nginx專家服務(wù),已經(jīng)和世界上一些繁忙網(wǎng)站合作來調(diào)優(yōu)Nginx以達到最大限度的性能,并且可以對任何需要充分發(fā)揮系統(tǒng)能力的客戶提供支持。

這里假定讀者對Nginx架構(gòu)和配置概念有個基本了解。本文不會重復(fù)Nginx文檔的內(nèi)容,而是概述各種配置選項并提供相關(guān)文檔鏈接。

調(diào)優(yōu)時,有一條較好的準則是,一次只改一個配置項,如果改后沒有性能上的提升,就退回為原先的值。

我們先討論Linux調(diào)優(yōu),因為有些值會影響在Nginx配置中可以用的值。

現(xiàn)代Linux內(nèi)核(2.6+)能夠很好的調(diào)節(jié)各種配置,有些配置您可能想更改。如果操作系統(tǒng)配置太低,那么會在內(nèi)核日志中看到錯誤信息,因此需要調(diào)節(jié)這些配置。Linux配置項很多,本文只提及那些在普通工作負載下最可能需要調(diào)優(yōu)的配置項。如果需要這些配置的詳細信息,請參考Linux文檔。

以下設(shè)置與連接及其如何排隊直接相關(guān)。如果傳入的連接率很高而性能水平參差不齊,比如一些連接似乎被暫停了,那么更改這些配置可能會有用。

文件描述符是一種操作系統(tǒng)資源,用來處理諸如連接和打開文件的事情。對每一個連接,Nginx可以用上多達兩個文件描述符。例如,如果Nginx用作代理,則其中一個用于客戶端連接,另一個用于連接到被代理的服務(wù)器。如果使用了HTTP keepalive,則連接描述符的使用會少得多。對于有大量連接的系統(tǒng),如下設(shè)置可能需要進行調(diào)整:

當Nginx被當作代理使用時,每一個到upstream服務(wù)器的連接都使用一個臨時端口。

下面是一些可能影響性能的Nginx指令。如前所述,我們僅討論那些推薦大多數(shù)用戶調(diào)整的指令。這里未提及到的任何指令,如果沒有Nginx團隊的指導(dǎo),不推薦更改。

Nginx可以運行多個工作進程,每個都能處理大量連接。你可以用如下指令控制工作進程個數(shù)以及連接如何被處理:

持久連接可以減少打開和關(guān)閉連接所需要的CPU和網(wǎng)絡(luò)開銷,因而對性能有重大影響。Nginx終止所有客戶端連接,并具有到upstream服務(wù)器的單獨連接。Nginx支持客戶端和upstream服務(wù)器的持久連接。如下指令涉及客戶端持久連接:

如下指令涉及upstream持久連接:

為了啟用到upstream的持久連接,需要增加如下指令:

記錄每個請求需要花費CPU和IO周期,減少這種影響的一種方法是啟用access日志緩沖。這將導(dǎo)致Nginx緩沖一系列日志條目,然后一次性寫入文件而不是單個單個寫入。通過指定access_log指令的"buffer=size"選項可以打開access日志緩沖,該設(shè)置指定要使用的緩沖區(qū)的大小。你還可以使用"flush=time"選項告訴Nginx多長時間后把緩沖區(qū)中的條目寫入文件。定義了這兩個選項后,當緩沖區(qū)放不下下一條日志,或者緩沖區(qū)中的條目超過了flush參數(shù)指定的時間,Nginx會將緩沖區(qū)中的條目寫入日志文件。當工作進程重新打開日志文件或者關(guān)閉時,緩沖區(qū)中的條目也會被寫入文件。也可以完全禁用access日志記錄。

Sendfile 是一個操作系統(tǒng)特性,可以在Nginx上啟用。它通過在內(nèi)核中從一個文件描述符向另一個文件描述符復(fù)制數(shù)據(jù),往往能達到 零拷貝 ,因而可以提供更快的TCP數(shù)據(jù)傳輸。Nginx可以使用該機制將緩存或者磁盤上的內(nèi)容寫到socket,無需從內(nèi)核空間到用戶空間的上下文切換,因而非??觳⑶沂褂幂^少的CPU開銷。由于數(shù)據(jù)永遠不會觸及用戶空間,所以不可能把需要訪問數(shù)據(jù)的過濾器插入到處理鏈中,不能使用任何需要改變內(nèi)容的Nginx過濾器,比如gzip過濾器。Nginx默認沒有啟用該機制。

Nginx和Nginx Plus允許設(shè)置各種限制,用來控制客戶端資源消耗,以防影響系統(tǒng)性能以及用戶體驗和安全。以下是一些相關(guān)指令:

Nginx還有一些特性可以用來提高web應(yīng)用的性能。這些特性不常出現(xiàn)在調(diào)優(yōu)討論中,但是有必要一提,因為它們的影響也可能比較可觀。我們將討論這些特性中的兩個。

對于一個為一組web服務(wù)器或者應(yīng)用服務(wù)器作負載均衡的Nginx實例來說,啟用緩存可以顯著地降低響應(yīng)時間,同時能顯著減輕后端服務(wù)器的負載。緩存本身就是一個主題,這里不會討論。Nginx緩存配置的更多信息請參考: Nginx管理指南 - 緩存 。

壓縮響應(yīng)可以大大減小響應(yīng)的大小,減少帶寬占用。不過,這需要CPU資源來處理壓縮,所以最好在值得減少帶寬占用的情況下使用。需要注意的是,不能對已經(jīng)壓縮的東西(比如jpeg圖片)再次啟用壓縮。Nginx壓縮配置的更多信息請參考: Nginx管理指南 - 壓縮和解壓縮 。

更多信息請參考:

安全開發(fā)運維必備的Nginx代理Web服務(wù)器性能優(yōu)化與安全加固配置

為了更好的指導(dǎo)部署與測試藝術(shù)升系統(tǒng)nginx網(wǎng)站服務(wù)器高性能同時下安全穩(wěn)定運行,需要對nginx服務(wù)進行調(diào)優(yōu)與加固;

本次進行Nginx服務(wù)調(diào)優(yōu)加固主要從以下幾個部分:

本文檔僅供內(nèi)部使用,禁止外傳,幫助研發(fā)人員,運維人員對系統(tǒng)長期穩(wěn)定的運行提供技術(shù)文檔參考。

Nginx是一個高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP服務(wù)器。Nginx作為負載均衡服務(wù)器, Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP 程序?qū)ν膺M行服務(wù),也可以支持作為 HTTP代理服務(wù)器對外進行服務(wù)。

Nginx版本選擇:

項目結(jié)構(gòu):

Nginx文檔幫助:

Nginx首頁地址目錄: /usr/share/nginx/html

Nginx配置文件:

localtion 請求匹配的url實是一個正則表達式:

Nginx 匹配判斷表達式:

例如,匹配末尾為如下后綴的靜態(tài)并判斷是否存在該文件, 如不存在則404。

查看可用模塊編譯參數(shù):

http_gzip模塊

開啟gzip壓縮輸出(常常是大于1kb的靜態(tài)文件),減少網(wǎng)絡(luò)傳輸;

http_fastcgi_module模塊

nginx可以用來請求路由到FastCGI服務(wù)器運行應(yīng)用程序由各種框架和PHP編程語言等??梢蚤_啟FastCGI的緩存功能以及將靜態(tài)資源進行剝離,從而提高性能。

keepalive模塊

長連接對性能有很大的影響,通過減少CPU和網(wǎng)絡(luò)開銷需要開啟或關(guān)閉連接;

http_ssl_module模塊

Nginx開啟支持Https協(xié)議的SSL模塊

Linux內(nèi)核參數(shù)部分默認值不適合高并發(fā),Linux內(nèi)核調(diào)優(yōu),主要涉及到網(wǎng)絡(luò)和文件系統(tǒng)、內(nèi)存等的優(yōu)化,

下面是我常用的內(nèi)核調(diào)優(yōu)配置:

文件描述符

文件描述符是操作系統(tǒng)資源,用于表示連接、打開的文件,以及其他信息。NGINX 每個連接可以使用兩個文件描述符。

例如如果NGINX充當代理時,通常一個文件描述符表示客戶端連接,另一個連接到代理服務(wù)器,如果開啟了HTTP 保持連接,這個比例會更低(譯注:為什么更低呢)。

對于有大量連接服務(wù)的系統(tǒng),下面的設(shè)置可能需要調(diào)整一下:

精簡模塊:Nginx由于不斷添加新的功能,附帶的模塊也越來越多,建議一般常用的服務(wù)器軟件使用源碼編譯安裝管理;

(1) 減小Nginx編譯后的文件大小

(2) 指定GCC編譯參數(shù)

修改GCC編譯參數(shù)提高編譯優(yōu)化級別穩(wěn)妥起見采用 -O2 這也是大多數(shù)軟件編譯推薦的優(yōu)化級別。

GCC編譯參數(shù)優(yōu)化 [可選項] 總共提供了5級編譯優(yōu)化級別:

常用編譯參數(shù):

緩存和壓縮與限制可以提高性能

NGINX的一些額外功能可用于提高Web應(yīng)用的性能,調(diào)優(yōu)的時候web應(yīng)用不需要關(guān)掉但值得一提,因為它們的影響可能很重要。

簡單示例:

1) 永久重定向

例如,配置 http 向 https 跳轉(zhuǎn) (永久)

nginx配置文件指令優(yōu)化一覽表

描述:Nginx因為安全配置不合適導(dǎo)致的安全問題,Nginx的默認配置中存在一些安全問題,例如版本號信息泄露、未配置使用SSL協(xié)議等。

對Nginx進行安全配置可以有效的防范一些常見安全問題,按照基線標準做好安全配置能夠減少安全事件的發(fā)生,保證采用Nginx服務(wù)器系統(tǒng)應(yīng)用安全運行;

Nginx安全配置項:

溫馨提示: 在修改相應(yīng)的源代碼文件后需重新編譯。

設(shè)置成功后驗證:

應(yīng)配置非root低權(quán)限用戶來運行nginx服務(wù),設(shè)置如下建立Nginx用戶組和用戶,采用user指令指運行用戶

加固方法:

我們應(yīng)該為提供的站點配置Secure Sockets Layer Protocol (SSL協(xié)議),配置其是為了數(shù)據(jù)傳輸?shù)陌踩?,SSL依靠證書來驗證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密。

不應(yīng)使用不安全SSLv2、SSLv3協(xié)議即以下和存在脆弱性的加密套件(ciphers), 我們應(yīng)該使用較新的TLS協(xié)議也應(yīng)該優(yōu)于舊的,并使用安全的加密套件。

HTTP Referrer Spam是垃圾信息發(fā)送者用來提高他們正在嘗試推廣的網(wǎng)站的互聯(lián)網(wǎng)搜索引擎排名一種技術(shù),如果他們的垃圾信息鏈接顯示在訪問日志中,并且這些日志被搜索引擎掃描,則會對網(wǎng)站排名產(chǎn)生不利影響

加固方法:

當惡意攻擊者采用掃描器進行掃描時候利用use-agent判斷是否是常用的工具掃描以及特定的版本,是則返回錯誤或者重定向;

Nginx支持webdav,雖然默認情況下不會編譯。如果使用webdav,則應(yīng)該在Nginx策略中禁用此規(guī)則。

加固方法: dav_methods 應(yīng)設(shè)置為off

當訪問一個特制的URL時,如"../nginx.status",stub_status模塊提供一個簡短的Nginx服務(wù)器狀態(tài)摘要,大多數(shù)情況下不應(yīng)啟用此模塊。

加固方法:nginx.conf文件中stub_status不應(yīng)設(shè)置為:on

如果在瀏覽器中出現(xiàn)Nginx自動生成的錯誤消息,默認情況下會包含Nginx的版本號,這些信息可以被攻擊者用來幫助他們發(fā)現(xiàn)服務(wù)器的潛在漏洞

加固方法: 關(guān)閉"Server"響應(yīng)頭中輸出的Nginx版本號將server_tokens應(yīng)設(shè)置為:off

client_body_timeout設(shè)置請求體(request body)的讀超時時間。僅當在一次readstep中,沒有得到請求體,就會設(shè)為超時。超時后Nginx返回HTTP狀態(tài)碼408(Request timed out)。

加固方法:nginx.conf文件中client_body_timeout應(yīng)設(shè)置為:10

client_header_timeout設(shè)置等待client發(fā)送一個請求頭的超時時間(例如:GET / HTTP/1.1)。僅當在一次read中沒有收到請求頭,才會設(shè)為超時。超時后Nginx返回HTTP狀態(tài)碼408(Request timed out)。

加固方法:nginx.conf文件中client_header_timeout應(yīng)設(shè)置為:10

keepalive_timeout設(shè)置與client的keep-alive連接超時時間。服務(wù)器將會在這個時間后關(guān)閉連接。

加固方法:nginx.conf文件中keepalive_timeout應(yīng)設(shè)置為:55

send_timeout設(shè)置客戶端的響應(yīng)超時時間。這個設(shè)置不會用于整個轉(zhuǎn)發(fā)器,而是在兩次客戶端讀取操作之間。如果在這段時間內(nèi),客戶端沒有讀取任何數(shù)據(jù),Nginx就會關(guān)閉連接。

加固方法:nginx.conf文件中send_timeout應(yīng)設(shè)置為:10

GET和POST是Internet上最常用的方法。Web服務(wù)器方法在RFC 2616中定義禁用不需要實現(xiàn)的可用方法。

加固方法:

limit_zone 配置項限制來自客戶端的同時連接數(shù)。通過此模塊可以從一個地址限制分配會話的同時連接數(shù)量或特殊情況。

加固方法:nginx.conf文件中l(wèi)imit_zone應(yīng)設(shè)置為:slimits $binary_remote_addr 5m

該配置項控制一個會話同時連接的最大數(shù)量,即限制來自單個IP地址的連接數(shù)量。

加固方法:nginx.conf 文件中 limit_conn 應(yīng)設(shè)置為: slimits 5

加固方法:

加固方法:

解決辦法:

描述后端獲取Proxy后的真實Client的IP獲取需要安裝--with-http_realip_module,然后后端程序采用JAVA(request.getAttribute("X-Real-IP"))進行獲取;

描述: 如果要使用geoip地區(qū)選擇,我們需要再nginx編譯時加入 --with-http_geoip_module 編譯參數(shù)。

描述: 為了防止外部站點引用我們的靜態(tài)資源,我們需要設(shè)置那些域名可以訪問我們的靜態(tài)資源。

描述: 下面收集了Web服務(wù)中常規(guī)的安全響應(yīng)頭, 它可以保證不受到某些攻擊,建議在指定的 server{} 代碼塊進行配置。

描述: 為了防止某些未備案的域名或者惡意鏡像站域名綁定到我們服務(wù)器上, 導(dǎo)致服務(wù)器被警告關(guān)停,將會對業(yè)務(wù)或者SEO排名以及企業(yè)形象造成影響,我們可以通過如下方式進行防范。

執(zhí)行結(jié)果:

描述: 有時你的網(wǎng)站可能只需要被某一IP或者IP段的地址請求訪問,那么非白名單中的地址訪問將被阻止訪問, 我們可以如下配置;

常用nginx配置文件解釋:

(1) 阿里巴巴提供的Concat或者Google的PageSpeed模塊實現(xiàn)這個合并文件的功能。

(2) PHP-FPM的優(yōu)化

如果您高負載網(wǎng)站使用PHP-FPM管理FastCGI對于PHP-FPM的優(yōu)化非常重要

(3) 配置Resin on Linux或者Windows為我們可以打開 resin-3.1.9/bin/httpd.sh 在不影響其他代碼的地方加入:-Dhttps.protocols=TLSv1.2, 例如

原文地址:

輕量級HTTP服務(wù)器Nginx:為何要選擇Nginx

本章主要介紹Nginx的配置管理和使用。作為一個輕量級的HTTP服務(wù)器

,Nginx與Apache相比有以下優(yōu)勢:在性能上,它占用很少的系統(tǒng)資源,能支持更多的并發(fā)連接,達到更高的訪問效率:在功能上,Nginx是優(yōu)秀的代理服務(wù)器和負載均衡服務(wù)器:在安裝配置上,Nginx安裝簡單、配置靈活。下面就詳細介紹Nginx的配置與使用。

相信很多讀者都對Apache非常熟悉,Nginx與Apache類似,也是一款高性能的HTTP和反向代理服務(wù)器軟件,還是一個IMAP/POP3/SMTP代理服務(wù)器。Nginx(發(fā)音是enginex)由俄羅斯的程序設(shè)計師Igor Sysoev開發(fā)(Igor將源代碼以類BSD許可證的形式發(fā)布).可以運行在UNIX、GNU/Linux、BSD、Mac OS X、Solaris以及Microsoft Windows等操作系統(tǒng)中。隨著Nginx在很多大型網(wǎng)站的廣泛使用,其穩(wěn)定、高效的特性逐漸被越來越多的用戶認可。

Nginx與Apache的異同

Nginx和Apache一樣,都是HTTP腮務(wù)器軟件,在功能實現(xiàn)上都采用模塊化結(jié)構(gòu)設(shè)計,都支持通用的語言接口,如PHP、Perl、Python等,同時還支持正向和反向代理、虛擬主機、URL重寫、壓縮傳輸、SSL加密傳輸?shù)?。它們之間最大的差別是Apache的處理速度很慢,且占用很多內(nèi)存資源,而Nginx卻恰恰相反;在功能實現(xiàn)上,Apache的所有模塊都支持動、靜態(tài)編譯,而Nginx模塊都是靜態(tài)編譯的,同時,Apache對Fcgi的支持不好,而Nginx對Fcgi的支持非常好:在處理連接方式上,Nginx支持epoll.而Apache卻不支持:在空間使用上,Nginx安裝包僅僅只有幾百K,和Nginx比起來Apache絕對是龐然大物。在了解了Nginx和Apache之間的異同點后基本上就知道了Nginx作為HTTP服務(wù)器的優(yōu)勢所在。

選擇Nginx的優(yōu)勢所在

通過上面的簡單介紹,可以看出,Nginx作為HTTP服務(wù)器的優(yōu)勢是顯而易見的,它有很多其他Web服務(wù)器無法比擬的性能和優(yōu)勢:

口作為Web服務(wù)器,Nginx處理靜態(tài)文件、索引文件,自動索引的效率非常高。

口作為代理服務(wù)器,Nginx可以實現(xiàn)無緩存的反向代理加速,提高網(wǎng)站運行速度。

口作為負載均衡服務(wù)器,Nginx既可以在內(nèi)部直接支持Rails和PHP,也可以支持HTTP代理服務(wù)器對外進行服務(wù),同時還支持簡單的容錯和利用算法進行負載均衡。

口在性能方面.Nginx是專門為性能優(yōu)化而開發(fā)的,在實現(xiàn)上非常注重效率。它采用內(nèi)核Poll模型,可以支持更多的并發(fā)連接,最大可以支持對50 000個并發(fā)連接數(shù)的響應(yīng),而且只占用很低的內(nèi)存資源。

口在穩(wěn)定性方面,Nginx采取了分階段資源分配技術(shù),使得CPU與內(nèi)存的占用率非常低。

Nginx官方表示,Nginx保持1O OOO個沒有活動的連接,而這些連接只占用2.5MB內(nèi)存,因此,類似DOS這樣的攻擊對Nginx來說基本上是沒有任何作用的。

nginx反向代理數(shù)據(jù)傳輸能提高數(shù)據(jù)響應(yīng)么?

您好,是的,Nginx反向代理可以提高數(shù)據(jù)響應(yīng)。Nginx反向代理是一種分布式的服務(wù)器架構(gòu),它可以將客戶端的請求轉(zhuǎn)發(fā)到多臺服務(wù)器上,從而提高數(shù)據(jù)傳輸?shù)男?。Nginx反向代理可以將客戶端的請求分發(fā)到多臺服務(wù)器上,從而提高數(shù)據(jù)傳輸?shù)男?。Nginx反向代理還可以提供負載均衡,可以將客戶端的請求分發(fā)到多臺服務(wù)器上,從而提高數(shù)據(jù)傳輸?shù)男?。此外,Nginx反向代理還可以提供安全性,可以將客戶端的請求轉(zhuǎn)發(fā)到多臺服務(wù)器上,從而提高數(shù)據(jù)傳輸?shù)陌踩???傊?,Nginx反向代理可以提高數(shù)據(jù)響應(yīng),提高數(shù)據(jù)傳輸?shù)男剩峁┴撦d均衡,以及提供安全性。

分享題目:nginx代理文件服務(wù)器安全性 nginx代理nginx
分享地址:http://jinyejixie.com/article18/ddojcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、品牌網(wǎng)站設(shè)計網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、品牌網(wǎng)站制作、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)
社旗县| 通山县| 芜湖县| 湖南省| 宁化县| 尉犁县| 潍坊市| 金阳县| 克什克腾旗| 东乡| 富裕县| 吴旗县| 巴里| 环江| 五寨县| 开鲁县| 建昌县| 大安市| 五寨县| 苗栗市| 康马县| 蒲江县| 平南县| 龙川县| 乌拉特前旗| 南丰县| 观塘区| 泾阳县| 泉州市| 银川市| 寿光市| 西吉县| 福鼎市| 桃源县| 策勒县| 朔州市| 高州市| 罗城| 南靖县| 武宁县| 孝昌县|