當前位置:首頁 » 網頁前端 » 系統卷高性能web伺服器詳解與運維
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

系統卷高性能web伺服器詳解與運維

發布時間: 2023-01-06 00:02:50

① 《實戰Nginx取代Apache的高性能Web伺服器》epub下載在線閱讀,求百度網盤雲資源

《實戰Nginx》(張宴)電子書網盤下載免費在線閱讀

鏈接:https://pan..com/s/13m8W-ZltA4yHN6B9NkUHRg

密碼:kza1

書名:實戰Nginx

作者:張宴

豆瓣評分:6.6

出版社:電子工業出版社

出版年份:2010年2月

頁數:318

內容簡介:

Nginx (「engine x」) 是俄羅斯人Igor Sysoev編寫的一款高性能HTTP 和反向代理伺服器。Nginx選擇了epoll和kqueue作為網路I/O模型,在高連接並發的情況下,Nginx是Apache伺服器不錯的替代品,它能夠支持高達50 000個並發連接數的響應,運行穩定,且內存、CPU等系統資源消耗非常低。

本書主要分為4個部分,第1部分為基礎篇,介紹了Nginx伺服器的安裝與配置方法;第2部分為進階篇,重點介紹了Nginx的配置優化方法、Nginx與PHP/Ruby/Python/JSP/Perl/Memcached的結合配置方法、Nginx HTTP反向代理與負載均衡的配置與優化、Nginx模塊開發等,最後還分析了新浪的開源軟體項目──基於Nginx的NCache網頁緩存系統;第3部分為實戰篇,分析了Nginx在國內知名網站(如新浪播客、搜狐博客等)中的應用案例;第4部分為模塊篇,對Nginx的基本模塊和第三方模塊進行了集中介紹。

本書是為對配置管理Nginx伺服器感興趣的讀者准備的,適用於以前沒有接觸過Nginx,或者對Nginx有一些了解並希望能夠進一步深入學習的專業系統工程師、個人網站站長及Linux/Unix從業人員。

作者簡介:

張宴,就職於北京金山軟體公司,金山游戲官方網站──逍遙網(xoyo.com)系統架構師,技術支持部平台組組長。曾在新浪網、趕集網等公司任系統工程師、系統架構師,工作內容主要涉及:伺服器系統架構設計與部署、系統運維與調優、網路故障解決、網站後端以及介面類PHP程序開發、Unix開源軟體二次開發、伺服器監控系統開發、系統運維與平台研發團隊管理。

② 第五章:Web伺服器

5.1各種形狀和尺寸的Web伺服器
Web伺服器會對HTTP請求進行處理並提供響應。術語「Web伺服器」可以用來表示Web伺服器的軟體,也可以用來表示提供Web頁面的特定設備或計算機。
Web伺服器有著不同的風格、形狀和尺寸。有普通的10行Perl腳本的Web伺服器、50MB的安全商用引擎以及極小的卡上伺服器。但不管功能有何差異,所有的 Web伺服器都能夠接收請求資源的 HTTP請求,將內容回送給客戶端(參見圖1-5)。
5.1.1Web伺服器的實現
Web伺服器實現了HTTP和相關的TCP連接處理。負責管理Web伺服器提供的資源,以及對Web伺服器的配置、控制及擴展方面的管理。
Web伺服器邏輯實現了HTTP 協議、管理著Web資源,並負責提供Web伺服器的管理功能。Web伺服器邏輯和操作系統共同負責管理TCP連接。底層操作系統負責管理底層計算機系統的硬體細節,並提供了TCP/IP網路支持、負責裝載Web資源的文件系統以及控制當前計算活動的進程管理功能。

5.3實際的Web伺服器會做些什麼
例5-1顯示的 Perl伺服器是一個Web伺服器的小例子。最先進的商用Web伺服器要比它復雜得多,但它們確實執行了幾項同樣的任務,如圖5-3所示。
(1)建立連接一—接受一個客戶端連接,或者如果不希望與這個客戶端建立連接,就
將其關閉。
(2)接收請求——從網路中讀取一條HTTP請求報文。(3)處理請求——對請求報文進行解釋,並採取行動。(4)訪問資源-———訪問報文中指定的資源。
(5)構建響應——創建帶有正確首部的 HTTP響應報文。(6)發送響應——將響應回送給客戶端。
(7)記錄事務處理過程—-將與已完成事務有關的內容記錄在一個日誌文件中。

5.4第一步——接受客戶端連接
如果客戶端已經打開了一條到伺服器的持久連接,可以使用那條連接來發送它的請求。否則,客戶端需要打開一條新的到伺服器的連接(回顧第4章,復習一下HTTP的連接管理技術)。

5.4.1處理新連接
客戶端請求一條到Web伺服器的TCP連接時,Web伺服器會建立連接,判斷連接的另一端是哪個客戶端,從TCP連接中將IP地址解析出來。'一旦新連接建立起來
並被接受,伺服器就會將新連接添加到其現存Web伺服器連接列表中,做好監視連接上數據傳輸的准備。
Web伺服器可以隨意拒絕或立即關閉任意一條連接。有些Web伺服器會因為客戶端IP地址或主機名是未認證的,或者因為它是已知的惡意客戶端而關閉連接。Web伺服器也可以使用其他識別技術。

5.4.2客戶端主機名識別
可以用「反向 DNS」對大部分Web伺服器進行配置,以便將客戶端IP地址轉換成客戶端主機名。Web伺服器可以將客戶端主機名用於詳細的訪問控制和日誌記錄。但要注意的是,主機名查找可能會花費很長時間,這樣會降低Web事務處理的速度。很多大容量Web伺服器要麼會禁止主機名解析,要麼只允許對特定內容進行解析。
可以用配置指令HostnameLookups啟用Apache的主機查找功能。比如,例5-2中的Apache配置指令就只打開了HTML和CGI資源的主機名解析功能。
例5-2配置Apache,為 HTML和CGI資源查找主機名
HostnameLookups off
<Files ~" - 《html |htmlcgi)$">
HostnameLookups on
</Files>

5.5第二步—接收請求報文
連接上有數據到達時,Web伺服器會從網路連接中讀取數據,並將請求報文中的內容解析出來(參見圖5-5)。
解析請求報文時,Web伺服器會:
·解析請求行,查找請求方法、指定的資源標識符(URI)以及版本號,3各項之
間由一個空格分隔,並以一個回車換行(CRLF)序列作為行的結束,「
·讀取以CRLF結尾的報文首部;
檢測到以CRLF結尾的、標識首部結束的空行(如果有的話)﹔
·如果有的話(長度由content-Length首部指定),讀取請求主體。

解析請求報文時,Web伺服器會不定期地從網路上接收輸入數據。網路連接可能隨時都會出現延遲。Web伺服器需要從網路中讀取數據,將部分報文數據臨時存儲在內存中,直到收到足以進行解析的數據並理解其意義為止。
5.5.1 報文的內部表示法
有些Web伺服器還會用便於進行報文操作的內部數據結構來存儲請求報文。比如,數據結構中可能包含有指向請求報文中各個片段的指針及其長度,這樣就可以將這些首部存放在一個快速查詢表中,以便快速訪問特定首部的具體值了(參見圖5-6)。

5.5.2連接的輸入/輸出處理結構
高性能的 Web伺服器能夠同時支持數千條連接。這些連接使得伺服器可以與世界各地的客戶端進行通信,每個客戶端都向伺服器打開了一條或多條連接。某些連接可能在快速地向Web伺服器發送請求,而其他一些連接則可能在慢慢發送,或者不經常發送請求,還有一些可能是空閑的,安靜地等待著將來可能出現的動作。
因為請求可能會在任意時刻到達,所以Web伺服器會不停地觀察有無新的Web請求。不同的Web伺服器結構會以不同的方式為請求服務,如圖5-7所示。
·單線程Web伺服器(參見圖5-7a)
單線程的Web伺服器一次只處理一個請求,直到其完成為止。一個事務處理結束之後,才去處理下一條連接。這種結構易於實現,但在處理過程中,所有其他連接都會被忽略。這樣會造成嚴重的性能問題,只適用於低負荷的伺服器,以及type-o-serve這樣的診斷工具。
·多進程及多線程Web伺服器(參見圖5-7b)
多進程和多線程Web伺服器用多個進程,或更高效的線程同時對請求進行處理。3可以根據需要創建,或者預先創建一些線程/進程。°有些伺服器會為每條連接分配一個線程/進程,但當伺服器同時要處理成百、上千,甚至數以萬計的連接時,需要的進程或線程數量可能會消耗太多的內存或系統資源。因此,很多多線程Web伺服器都會對線程/進程的最大數量進行限制。
·復用I/O的伺服器(參見圖5-7c)
為了支持大量的連接,很多Web伺服器都採用了復用結構。在復用結構中,要同時監視所有連接上的活動。當連接的狀態發生變化時(比如,有數據可用,或出現錯誤時),就對那條連接進行少量的處理,處理結束之後,將連接返回到開放連接列表中,等待下一次狀態變化。只有在有事情可做時才會對連接進行處理,在空閑連接上等待的時候並不會綁定線程和進程。
·復用的多線程Web伺服器(參見圖5-7d)
有些系統會將多線程和復用功能結合在一起,以利用計算機平台上的多個CPU.多個線程(通常是一個物理處理器)中的每一個都在觀察打開的連接(或打開的連接中的一個子集),並對每條連接執行少量的任務。

5.6第三步———處理請求
一旦Web伺服器收到了請求,就可以根據方法、資源、首部和可選的主體部分來對請求進行處理了。
有些方法(比如POST)要求請求報文中必須帶有實體主體部分的數據。其他一些方法(比如OPTIONS)允許有請求的主體部分,也允許沒有。少數方法(比如GET)禁止在請求報文中包含實體的主體數據。
這里我們並不對請求的具體處理方式進行討論,因為本書其餘大多數章節都在討論這個問題。

5.7第四步——-對資源的映射及訪問
Web 伺服器是資源伺服器。它們負責發送預先創建好的內容,比如HTML頁面或JPEG 圖片,以及運行在伺服器上的資源生成程序所產生的動態內容。

5.7.1 docroot
Web伺服器支持各種不同類型的資源映射,但最簡單的資源映射形式就是用請求URI作為名字來訪問Web伺服器文件系統中的文件。通常,Web伺服器的文件系統中會有一個特殊的文件夾專門用於存放Web內容。這個文件夾被稱為文檔的根目錄(document root,或docroot)。Web伺服器從請求報文中獲取URI,並將其附加在文檔根目錄的後面。
在圖5-8中,有一條對/specials/saw-blade.gif 的請求到達。這個例子中Web伺服器的文檔根目錄為/us/local/httpd/files。Web伺服器會返迴文件/usr/local/httpd/files/specials/saw-blade.gif。

在配置文件httpd.conf中添加一個 DocumentRoot行就可以為Apache Web伺服器設置文檔的根目錄了:
DocumentRoot /usr/ local/httpd/files
伺服器要注意,不能讓相對URL退到docroot之外,將文件系統的其餘部分暴露出來。比如,大多數成熟的Web伺服器都不允許這樣的URI看到Joe的五金商店文檔根目錄上一級的文件:
http://www.joes-hardware.com/ ..

5.8.3重定向
Web伺服器有時會返回重定向響應而不是成功的報文。Web伺服器可以將瀏覽器重定向到其他地方來執行請求。重定向響應由返回碼3XX說明。Location響應首部包含了內容的新地址或優選地址的URI。重定向可用於下列情況。
·永久刪除的資源
資源可能已經被移動到了新的位置,或者被重新命名,有了一個新的URL。Web伺服器可以告訴客戶端資源已經被重命名了,這樣客戶端就可以在從新地址獲取資源之前,更新書簽之類的信息了。狀態碼301 Moved Permanently就用於此類重定向。·臨時刪除的資源
如果資源被臨時移走或重命名了,伺服器可能希望將客戶端重定向到新的位置上去。但由於重命名是臨時的,所以伺服器希望客戶端將來還可以回頭去使用老的URL,不要對書簽進行更新。狀態碼303 See Other以及狀態碼307 TemporaryRedirect就用於此類重定向。

③ 如何選擇WEB伺服器

大多數Web伺服器主要是為一種操作系統進行優化的,有的只能運行在一種操作系統上,所以選擇Web伺服器時,還需要和操作系統聯系起來考慮。而且一般的品牌Web伺服器都有自己的一套Web伺服器系統軟體,這就要考慮這套軟體所支持的標准、應用(包括資料庫應用)和安全協議等。一般要考慮以下幾個方面1、從本身需求考慮,包括現在實際需求和應用與未來應用擴展需求。有些企業盲目要求高配置,其實這是不正確的。2、性能由於Web伺服器為它的客戶提供的數據類型通常是機密的。所支持的並發用戶數,這是大家最容易想到的。Web伺服器的並發用戶數支持能力是指Web伺服器在同一時刻可以允許的用戶連接數。響應能力-其實這個參數與上面介紹的所能支持的並發用戶數相關,響應速度越快,單位時間內就可以支持越多的訪問量,用戶點擊的響應速度就越快。3、測試的機器應與打算購買的機器一致
有的IDC奸商,將測試的機器是至強機器,帶寬放在100M的線上,用戶測試時感覺的確快,但一轉手到用戶時,可能是普通的機器+普通的帶寬,速度明顯跟不上。要想體驗真實的測試速度,必須確認測試的機器與打算購買的機器一致,也就是說,如果測試可以了,那就直接要這一台機,不用換線,不用換機器,不用下架。
4、簽定託管/租用合同
很多人對於合同之事,不太重視,但一般機房或者一級代理,都提供此服務。有合同在手,一是日後可以有證明資料,一是使託管/租用正規化。5、安全性安全系統方面是否能7X24小時進行全方位機房監控。它主要要考慮兩個方面:一是保護Web伺服器機密信息;二是要防止黑客的攻擊。6、管理的難易程度Web伺服器的管理包含兩種含義:一是管理Web伺服器是否簡單易行;二是利用Web界面進行網路管理。管理
Web伺服器的管理界面一般有命令行、Telnet、HTML和基於窗口的應用程序。從伺服器商的服務體系和技術實力來說,看IDC商是不是正規公司,是否擁有這方面的資深認證可以幫助你免費備案。如果出了問題,不能得到廠商及時、可靠的技術支持,將很可能影響到公司電子商務的正常應用。有沒有專業的技術團隊,後期維護沒有管了。

④ 高性能架構-Web後端性能優化

用戶視角的網站性能:從用戶角度,網站性能就是用戶在瀏覽器上直觀感受到的網站響應速度.用戶的感受時間包括用戶計算機和網站伺服器通信的時間、網站伺服器處理請求時間、用戶計算機瀏覽器構造請求和解析響應數據的時間。

開發人員視角的網站性能:開發人員關注的主要是應用程序本身及其相關子系統的性能,包括響應延遲、系統吞吐量、並發處理能力、系統穩定性等技術指標。

運維人員視角的網站性能: 運維人員更關注基礎設施性能和資源利用率。

響應時間:指應用程序執行一個操作需要的時間,包括從發出請求開始到收到最後響應數據所需要的時間。

並發數:指系統能夠同時處理請求的數。

吞吐量:指單位時間內系統處理請求的數量。

性能計數器:它是描述伺服器或操作系統性能的一些指標數據。包括System Load、對象與線程數、內存使用、CPU使用、磁碟與網路I/O等指標。

性能測試是一個總稱,具體可細分為性能測試、負載測試、壓力測試、穩定性測試。

性能測試:以系統設計初期規劃的性能指標為預期目標,對系統不斷施加壓力,驗證系統在資源可接受的范圍內,是否達到性能預期。

負載測試:對系統不斷地增加請求以增加系統壓力,直到系統的某項或多項性能指標達到安全臨界值。

壓力測試:超過安全負載的情況下,對系統繼續施加壓力,直到系統崩潰或不能再處理任何請求,以此獲得系統最大壓力承受能力。

穩定性測試:被測系統在特定硬體、軟體、網路環境下,給系統載入一定業務壓力,使系統運行一段較長時間,以檢測系統是否穩定。

性能分析

性能優化:定位產生性能問題的具體原因後,就需要進行性能優化。

Web前端性能優化

(1).減少http請求.在伺服器端,每次Http請求都需要啟動獨立的線程去處理,這些通信和服務的開銷都很昂貴,減少HTTP請求的數目可有效提高訪問性能跟。減少HTTP請求的主要手段是合並CSS、合並Javascript、合並圖片。

(2).使用瀏覽器緩存.將靜態文件緩存在瀏覽器中,可以極好的改善性能。

(3).啟用壓縮.在伺服器端對文件進行壓縮,在瀏覽器端對文件進行解壓縮,可以有效減少通信傳輸的數據量。但是壓縮對伺服器和瀏覽器產生一定的壓力,在通信寬頻良好,而伺服器資源不足的情況下要權衡考慮。

(4).CSS放在頁面最上面、Javascript放在頁面最下面

(5).減少Cookie傳輸.一方面,Cookie包含在每次請求和相應中,太大的Cookie會嚴重影響數據傳輸,因此盡量減少Cookie中傳輸的數據量。另一方面,對於某些靜態資源訪問,發送Cookie沒有意義,可以考慮靜態資源使用獨立域名訪問,避免請求靜態資源時發送Cookie,減少Cookie傳輸次數。

方向代理位於網站機房一側,代理系統伺服器接收HTTP請求。

反向代理伺服器也具有保護網站安全的作用,來自互聯網的訪問請求都必須經過代理伺服器,相當於在Web伺服器和可能的網路攻擊之間建立了一個屏障。反向代理伺服器也可以通過配置緩存功能加速Web請求,靜態內容被緩存在反向代理伺服器上,當用戶再次訪問靜態內容是時,就可以直接從反向代理伺服器返回。此外,反向代理也可以實現負載均衡的功能。

⑤ 應用web伺服器系統的解析Web伺服器和應用伺服器的區別

通俗的講,Web伺服器傳送頁面使瀏覽器可以瀏覽,然而應用程序伺服器提供的是客戶端應用程序可以調用 (call)的方法(methods)。確切一點,你可以說:Web伺服器專門處理HTTP請求(request),但是應用程序伺服器是通過很多協議來 為應用程序提供(serves)商業邏輯(business logic)。
下面讓我們來細細道來:
Web伺服器(Web Server)
Web伺服器可以解析(handles)HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應 (response),例如送回一個HTML頁面。為了處理一個請求(request),Web伺服器可以響應(response)一個靜態頁面或圖片, 進行頁面跳轉(redirect),或者把動態響應(dynamic response)的產生委託(delegate)給一些其它的程序例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,伺服器端(server-side)JavaScript,或者一些其它的伺服器端(server-side)技術。無論它們(譯者 註:腳本)的目的如何,這些伺服器端(server-side)的程序通常產生一個HTML的響應(response)來讓瀏覽器可以瀏覽。
要知道,Web伺服器的代理模型(delegation model)非常簡單。當一個請求(request)被送到Web伺服器里來時,它只單純的把請求(request)傳遞給可以很好的處理請求 (request)的程序(譯者註:伺服器端腳本)。Web伺服器僅僅提供一個可以執行伺服器端(server-side)程序和返回(程序所產生的)響 應(response)的環境,而不會超出職能范圍。伺服器端(server-side)程序通常具有事務處理(transaction processing),資料庫連接(database connectivity)和消息(messaging)等功能。
雖然Web 伺服器不支持事務處理或資料庫連接池,但它可以配置(employ)各種策略(strategies)來實現容錯性(fault tolerance)和可擴展性(scalability),例如負載平衡(load balancing),緩沖(caching)。集群特徵(clustering-features)經常被誤認為僅僅是應用程序伺服器專有的特徵。
應用程序伺服器(The Application Server)
根據我們的定義,作為應用程序伺服器,它通過各種協議,可以包括HTTP,把商業邏輯暴露給(expose)客戶端應用程序。Web伺服器主要是處理向 瀏覽器發送HTML以供瀏覽,而應用程序伺服器提供訪問商業邏輯的途徑以供客戶端應用程序使用。應用程序使用此商業邏輯就象你調用對象的一個方法(或過程 語言中的一個函數)一樣。
應用程序伺服器的客戶端(包含有圖形用戶界面(GUI)的)可能會運行在一台PC、一個Web伺服器或者甚至 是其它的應用程序伺服器上。在應用程序伺服器與其客戶端之間來回穿梭(traveling)的信息不僅僅局限於簡單的顯示標記。相反,這種信息就是程序邏 輯(program logic)。 正是由於這種邏輯取得了(takes)數據和方法調用(calls)的形式而不是靜態HTML,所以客戶端才可以隨心所欲的使用這種被暴露的商業邏輯。
在大多數情形下,應用程序伺服器是通過組件(component)的應用程序介面(API)把商業邏輯暴露(expose)(給客戶端應用程序)的,例 如基於J2EE(Java 2 Platform, Enterprise Edition)應用程序伺服器的EJB(Enterprise JavaBean)組件模型。此外,應用程序伺服器可以管理自己的資源,例如看大門的工作(gate-keeping ties)包括安全(security),事務處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web伺服器一樣,應用程序伺服器配置了多種可擴展(scalability)和容錯(fault tolerance)技術。

⑥ 安全開發運維必備的Nginx代理Web伺服器性能優化與安全加固配置

為了更好的指導部署與測試藝術升系統nginx網站伺服器高性能同時下安全穩定運行,需要對nginx服務進行調優與加固;

本次進行Nginx服務調優加固主要從以下幾個部分:

本文檔僅供內部使用,禁止外傳,幫助研發人員,運維人員對系統長期穩定的運行提供技術文檔參考。

Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx作為負載均衡伺服器, Nginx 既可以在內部直接支持 Rails 和 PHP 程序對外進行服務,也可以支持作為 HTTP代理伺服器對外進行服務。

Nginx版本選擇:

項目結構:



Nginx文檔幫助: http://nginx.org/en/docs/
Nginx首頁地址目錄: /usr/share/nginx/html
Nginx配置文件:



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

Nginx 匹配判斷表達式:

例如,匹配末尾為如下後綴的靜態並判斷是否存在該文件, 如不存在則404。



查看可用模塊編譯參數:http://nginx.org/en/docs/configure.html



http_gzip模塊
開啟gzip壓縮輸出(常常是大於1kb的靜態文件),減少網路傳輸;



http_fastcgi_mole模塊
nginx可以用來請求路由到FastCGI伺服器運行應用程序由各種框架和PHP編程語言等。可以開啟FastCGI的緩存功能以及將靜態資源進行剝離,從而提高性能。



keepalive模塊
長連接對性能有很大的影響,通過減少CPU和網路開銷需要開啟或關閉連接;



http_ssl_mole模塊
Nginx開啟支持Https協議的SSL模塊

Linux內核參數部分默認值不適合高並發,Linux內核調優,主要涉及到網路和文件系統、內存等的優化,

下面是我常用的內核調優配置:



文件描述符
文件描述符是操作系統資源,用於表示連接、打開的文件,以及其他信息。NGINX 每個連接可以使用兩個文件描述符。
例如如果NGINX充當代理時,通常一個文件描述符表示客戶端連接,另一個連接到代理伺服器,如果開啟了HTTP 保持連接,這個比例會更低(譯註:為什麼更低呢)。

對於有大量連接服務的系統,下面的設置可能需要調整一下:



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

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



(2) 指定GCC編譯參數
修改GCC編譯參數提高編譯優化級別穩妥起見採用 -O2 這也是大多數軟體編譯推薦的優化級別。

GCC編譯參數優化 [可選項] 總共提供了5級編譯優化級別:



常用編譯參數:



緩存和壓縮與限制可以提高性能
NGINX的一些額外功能可用於提高Web應用的性能,調優的時候web應用不需要關掉但值得一提,因為它們的影響可能很重要。

簡單示例:



1) 永久重定向

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



nginx配置文件指令優化一覽表



描述:Nginx因為安全配置不合適導致的安全問題,Nginx的默認配置中存在一些安全問題,例如版本號信息泄露、未配置使用SSL協議等。
對Nginx進行安全配置可以有效的防範一些常見安全問題,按照基線標准做好安全配置能夠減少安全事件的發生,保證採用Nginx伺服器系統應用安全運行;

Nginx安全配置項:

溫馨提示: 在修改相應的源代碼文件後需重新編譯。

設置成功後驗證:



應配置非root低許可權用戶來運行nginx服務,設置如下建立Nginx用戶組和用戶,採用user指令指運行用戶

加固方法:



我們應該為提供的站點配置Secure Sockets Layer Protocol (SSL協議),配置其是為了數據傳輸的安全,SSL依靠證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通信加密。



不應使用不安全SSLv2、SSLv3協議即以下和存在脆弱性的加密套件(ciphers), 我們應該使用較新的TLS協議也應該優於舊的,並使用安全的加密套件。



HTTP Referrer Spam是垃圾信息發送者用來提高他們正在嘗試推廣的網站的互聯網搜索引擎排名一種技術,如果他們的垃圾信息鏈接顯示在訪問日誌中,並且這些日誌被搜索引擎掃描,則會對網站排名產生不利影響
加固方法:



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



Nginx支持webdav,雖然默認情況下不會編譯。如果使用webdav,則應該在Nginx策略中禁用此規則。
加固方法: dav_methods 應設置為off



當訪問一個特製的URL時,如"../nginx.status",stub_status模塊提供一個簡短的Nginx伺服器狀態摘要,大多數情況下不應啟用此模塊。
加固方法:nginx.conf文件中stub_status不應設置為:on



如果在瀏覽器中出現Nginx自動生成的錯誤消息,默認情況下會包含Nginx的版本號,這些信息可以被攻擊者用來幫助他們發現伺服器的潛在漏洞
加固方法: 關閉"Server"響應頭中輸出的Nginx版本號將server_tokens應設置為:off



client_body_timeout設置請求體(request body)的讀超時時間。僅當在一次readstep中,沒有得到請求體,就會設為超時。超時後Nginx返回HTTP狀態碼408(Request timed out)。
加固方法:nginx.conf文件中client_body_timeout應設置為:10



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

加固方法:nginx.conf文件中client_header_timeout應設置為:10



keepalive_timeout設置與client的keep-alive連接超時時間。伺服器將會在這個時間後關閉連接。

加固方法:nginx.conf文件中keepalive_timeout應設置為:55



send_timeout設置客戶端的響應超時時間。這個設置不會用於整個轉發器,而是在兩次客戶端讀取操作之間。如果在這段時間內,客戶端沒有讀取任何數據,Nginx就會關閉連接。

加固方法:nginx.conf文件中send_timeout應設置為:10



GET和POST是Internet上最常用的方法。Web伺服器方法在RFC 2616中定義禁用不需要實現的可用方法。

加固方法:



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

加固方法:nginx.conf文件中limit_zone應設置為:slimits $binary_remote_addr 5m



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

加固方法:nginx.conf 文件中 limit_conn 應設置為: slimits 5



加固方法:





加固方法:



解決辦法:





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



描述: 如果要使用geoip地區選擇,我們需要再nginx編譯時加入 --with-http_geoip_mole 編譯參數。



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



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



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

執行結果:



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



常用nginx配置文件解釋:

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



(2) PHP-FPM的優化
如果您高負載網站使用PHP-FPM管理FastCGI對於PHP-FPM的優化非常重要



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

原文地址: https://blog.weiyigeek.top/2019/9-2-122.html

⑦ web服務的部署屬於什麼運維

日常運維。Web伺服器一般指網站伺服器,web服務的部署屬於日常運維。Web伺服器可以向瀏覽器等Web客戶端提供文檔,也可以放置網站文件,讓全世界瀏覽;可以放置數據文件,讓全世界下載。目前最主流的三個Web伺服器是Apache、Nginx、IIS。

⑧ Web伺服器是什麼通俗易懂的回答

Web伺服器一般指網站伺服器,是指駐留於網際網路上某種類型計算機的程序,可以向瀏覽器等Web客戶端提供文檔,也可以放置網站文件,讓全世界瀏覽;可以放置數據文件,讓全世界下載。目前最主流的三個Web伺服器是Apache Nginx IIS。

WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上信息瀏覽服務。

WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來 Internet 迅速發展,且用戶數量飛速增長。

(8)系統卷高性能web伺服器詳解與運維擴展閱讀:

WEB伺服器特點:

Windows,Linux與Unix這3個操作系統是架設Web伺服器比較常見的操作系統。Linux的安全性能在這3個操作系統中最高,可以支持多個硬體平台,其網路功能比較強大。

總的來說,這兩大優點是其他操作系統不可替代的:

1、可以依據用戶不同的需求來隨意修改、調整與復制各種程序的源碼以及發布在互聯網上;

2、Linux操作系統的市場價格比較便宜,也能夠在互聯網上免費下載源碼。可以說,Linux為架設既高效又安全的Web伺服器的比較理想的操作系統。

3、此外,要讓Web伺服器更具有優越的性能,可以根據伺服器系統之特點與用途作進一步的優化與處理,盡量減少Web伺服器的數據傳輸量以及降低其數據傳輸的頻率。

進而促進網路寬頻的利用率與使用率,以及提高網路客戶端的網頁載入的速度,同時也可以減少Web伺服器各種資源的消耗。