導航:首頁 > 編程大全 > nginx網路文件伺服器

nginx網路文件伺服器

發布時間:2023-05-15 06:53:33

1. nginx http文件伺服器 怎麼配置

Nginx功能豐富,可作為HTTP伺服器,也可作為反向代理伺服器,郵件伺服器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。並且支持很多第三方的模塊擴展。

2. web伺服器 Nginx

(1)概念

Web伺服器是一台使用HTTP協議與客戶機瀏覽器進行信息交流(因此又稱為HTTP伺服器)、為互聯網客戶提供服務(信息瀏覽,下載資源等)的主機。發展趨勢:從HTML到XML、從有線到無線、從無聲到有聲

1.linux是架設安全高效Web伺服器的操作系統

架設Web伺服器常見的操作系統:Windows、Linux、Unix。Linux安全性能最高,可以支持多個硬體平台,可以根據不同需求隨意修改、調整與復制各種程序的源碼以及發布在互聯網上,網路功能比較強大。

2.目前主流伺服器:Apache、 Nginx、 IIS

Unix/Linux操作系統下使用最廣泛的免費HTTP伺服器:Apache、Nginx。Windows(NT/2000/2003)操作系統使用ⅡS,綜合使用最多的Web伺服器是 IIs、Apache。

選擇WEB伺服器應考慮的本身特性因素有:性能、安全性、日誌和統計、虛擬主機、代理伺服器、緩沖服務和集成應用程序等。下面介紹目前最主流的三大web伺服器:

① 大型

IIS:

微軟的Internet Information Services (IIS),IIS 允許在互聯網上發布信息,提供了一個圖形界面的管理工具,稱為Internet服務管理器,可用於監視配置和控制Internet服務。IIS是一種Web服務組件,其中包括Web伺服器(網頁瀏覽)、FTP伺服器(文件傳輸)、NNTP伺服器(新聞服務)和SMTP伺服器(郵件傳輸),使得在網路上發布信息很容易。它提供ISAPI(Intranet Server API)作為擴展Web伺服器功能的編程介面,它還提供一個Internet資料庫連接器,可以實現對資料庫的查詢和更新。

Apache:

Apache是世界上用的最多的Web伺服器,源於NCSAhttpd伺服器的補丁(pache 補丁)。它斗族散的成功之處主要在於:源代碼開放、有開放的開發隊伍、支持跨平台的應用(可以運行在幾乎所有的Unix、Windows、Linux系統平台上)、可移植性。

② 小型

nginx:

nginx的模塊都是靜態編譯的,對fcgi的支持非常好,在處理鏈接的的方式上nginx支持epoll,支持通用語言介面(如:php、python、perl等),支持正向和反向代理、虛擬主機、url重寫、壓縮傳輸等。

(2)工作原理

當客戶端Web瀏覽器連到伺服器上並請求文件時,伺服器將處理該請求並將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。Web伺服器主要是處理向瀏覽器發送HTML以供瀏覽,而應用程序伺服器提供訪問商業邏輯的途徑以供客戶端應用程序使用。應用程序伺服器可以管理自己的資源,例如看大門的工作(gate-keeping ties)包括安全(security),事務處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web伺服器一樣,應用程序伺服器配置了多種可擴展(scalability)和容錯(fault tolerance)技術。Web伺服器的工作原理一般可分成如下4個步驟:

① 連接過程:是Web伺服器和其瀏覽器之間所建立起來的一種連接。查看連接過程是否實現,用戶可以找到和打開socket這個虛擬文件,這個文件的建立意味著連接過程這一步驟已經成功建立。

② 請求過程:是Web的瀏覽器運用socket這個文件向其伺服器而提出各種請求。

③ 應答過程:是運用HTTP協議把穗核在請求過程中所提出來的請求傳輸到Web的伺服器,進而實施任務處理,然後運用HTTP協議把任務處理的結果傳輸到Web的瀏覽器,同時在Web的瀏覽器上面展示上述所請求之界面。

④ 關閉連接:是當上一個步驟--應答過程完成以後,Web伺服器和其瀏覽器之間斷開連接之過程。Web伺服器上述4個步驟環環相扣、緊空氏密相聯,邏輯性比較強,可以支持多個進程、多個線程以及多個進程與多個線程相混合的技術。

Web伺服器可以解析HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應(response)。為了處理一個request,Web伺服器可以response一個靜態頁面(HTML頁面)或圖片,進行頁面跳轉(redirect),或把動態響應委託給伺服器端。Web伺服器的代理模型非常簡單。當一個request被送到Web伺服器里來時,它只單純的把request傳遞給可以很好的處理request的程序(伺服器端腳本,如:CGI腳本,JSP腳本,servlets,ASP腳本,伺服器端javaScript等)。Web伺服器僅僅提供一個可以執行伺服器端程序和返回(程序所產生的)響應的環境,而不會超出職能范圍。伺服器端程序功能通常有:事務處理、資料庫連接、和消息等。雖然Web伺服器不支持事務處理或資料庫連接池,但它可以配置各種策略來實現容錯性、可擴展性(如:負載平衡、緩沖)。集群特徵經常被誤認為僅僅是應用程序伺服器專有的特徵。

(3)配置

如何設置默認文檔;在同一台伺服器上架設多個Web站點;(可以通過改變埠號)創建Web虛擬目錄;

1、了解DNS主機名和IP地址。

如果此WEB伺服器在Internet上,需向ISP申請和注冊此伺服器的DNS主機名和IP地址。如果此伺服器只在企業網內使用,則在內部的DNS伺服器上注冊。

2、打開伺服器文檔,選擇"埠"-"Internet埠",啟用"TCP/ IP埠"。

3、選擇"Internet協議",完成以下選項後,保存文檔。

① 綁定主機名:

A、選擇"是"則您可在"主機名"項中輸入主機別名,WEB用戶可用此別名替代Domino伺服器名訪問WEB伺服器。

B、選擇"否"(預設)則不允許使用別名。

② DNS查詢: 選擇"是"則Domino伺服器查詢發送請求的WEB客戶機的DNS名。

③ Domino日誌文件和資料庫將包含WEB客戶機的DNS主機名: 選擇"否"(預設)則不查詢,Domino日誌文件和資料庫將只包含WEB客戶機的IP地址( 注意:選擇"否"將提高Domino伺服器性能,因為伺服器不使用資源執行DNS查詢

④ "允許HTTP客戶瀏覽資料庫":選擇"是"則允許WEB用戶在URL中使用OpenServer命令來顯示伺服器上資料庫列表。選擇"否"(預設)則不允許。但即使WEB用戶不能看到伺服器上資料庫列表,他們仍能打開有許可權訪問的單個資料庫。

4、啟動HTTP任務。在伺服器控制台上,輸入:loap http

小型項目

(1)概念

1、Nginx(俄羅斯程序設計師Igor Sysoev用C語言進行編寫)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3/SMTP)代理伺服器。

2、特點:佔有內存少(在高連接並發的情況下,Nginx是Apache伺服器不錯的替代品,能夠支持高達 50,000 個並發連接數的響應),並發能力強。

3、中國大陸使用nginx網站用戶有:網路、京東、新浪、網易、騰訊、淘寶等。

4、Nginx代碼完全用C語言從頭寫成,已經移植到許多體系結構和操作系統,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。

5、Nginx有自己的函數庫,並且除了zlib、PCRE和OpenSSL之外,標准模塊只使用系統C庫函數。而且,如果不需要或者考慮到潛在的授權沖突,可以不使用這些第三方庫。

(2)安裝

官網:http://nginx.org/

選擇要安裝的版本

(3)使用

打開conf/nginx.conf,修改埠號,和主頁根地址為:打包後index.html的目錄

模擬域名配置(本地域名設置):

在瀏覽器地址欄輸入配置好的「域名:埠號」回車:

3. Nginx虛擬目錄連接文件伺服器,如何連接呢急急急!!!

windows上面的隱激孝語音文件先共享出來
然後nginx 所在的linux上面配置個samba client用來訪問windows上面的共享文件
這樣文件就相當與在linux系統鉛攔上灶稿面了

4. 為什麼要使用nginx伺服器

這里做了些基準測試表明nginx打敗了其它的輕量級的web伺服器和代理伺服器,同樣也贏了相對不是那麼輕量級的產品。

有人說這些基準測試是不準確的,因為在這樣那樣的環境下,做的比較不一致。我傾向同意基準測試只是告訴了我們其中一部分情況,你能做的是消除偏見(有碰漏薯人見過所有人都同意一個基準測試是公平的嗎?我是沒見過。)

不管怎樣,這篇文章不是做基準測試來讓人們爭論(如果你喜歡,可以在Google上找到那樣的文章),相反,下面的引述來自人們在現實世界中使用Nginx,在真實的負載下,服務於真正的應用和網站。

引述

我們投資的一些笑者公司把web平台切換到Nginx後,可以顯著的解決擴展問題。Nginx明顯有效的實現了今天互聯網上最大網站數量的增長。

– Thomas Gieselmann, BV Capital.


對今天運行網站的所有人的建議是,想打破性能限制就研究下能否使用Nginx。CloudFlare去年在一個相對較小的基礎設施上已經擴展到可以處理每
月超過150億的瀏覽量,很大程度上是因為Nginx的擴展性。我的經驗表明切換到Nginx可以最大限度的利用現代的操作系統和現有的硬體資源。

– Matthew Prince, CloudFlare的聯合創始人和CEO

Apache和Nginx都有能力提供每秒鍾龐大的請求服務,但是隨著並發數量的增加,Apache的性能開始下降,然搜啟而Nginx的性能幾乎不會下降。

這里最好的一點是:因為Nginx是基於事件的,它不用為每個請求產生新的進程或線程,所以它的內存使用很低。在我的基準測試中,它的內存使用坐落在2.5M,Apache使用得更多。

– WebFaction


對Nginx v0.5.22 and Apache
v2.2.8我用ab(Apache的基準測試工具)跑了一個簡單的測試。在測試過程中,我用vmstat和top檢測系統。結果表明在提供靜態內容
時,Nginx做得比Apache好。兩個伺服器都在並發數100時表現最佳。Apache使用4個工作進程(線程模式),30%的CPU和17MB的內
存,每秒鍾處理6,500次請求。Nginx使用一個工作進程,15%的CPU,1MB內存,每秒鍾處理11,500次請求。

– Linux Journal

Apache好比是微軟Word,它有100萬個選項,但是你只需要其中6個。Nginx就處理那6項任務,但處理其中5項任務時速度比Apache快50倍。

– Chris Lea

我現在使用Nginx在單一伺服器上處理每天超過數千萬(也就是每秒鍾幾百次)的反向代理HTTP請求。在負載高峰期,它消耗大約15MB的內存和10%的CPU,在我的特定配置下(FreeBSD 6)。

在同樣的負載下,Apache表現大跌(在大約使用1000個進程後,上帝知道使用了多少內存),Pound表現大跌(如此多的線程,所有的線程棧會消耗400MB以上的內存),還有Lighttpd每小時泄露20MB以上內存(使用更多CPU,但不顯著)。

– Bob Ippolito in the TurboGears mailing list, 2006-08-24

我們現在使用Nginx 0.6.29的upstream hash模塊為我們需要的Varnish代理提供靜態雜湊。我們通常處理8-9千次請求/秒,大約1.2Gb/秒數據在幾台Nginx伺服器間傳輸,而且還有很大的成長空間。

– WordPress.com

直到今天,我們一直使用Pound來解決Justin.tv 的負載均衡。它一直使用20%的CPU,在高峰期會達到80%。在極高的負載下,它偶爾會崩潰。

我們只是切換到了Nginx,負載馬上就降到了大約3%的CPU使用。我們的頁面感覺更快了,盡管這可能是我的錯覺。不僅它的配置文件格式容易理解和配置,而且還提供了完整的web伺服器功能。我們再也沒有遇到尖峰期了,而且我懷疑現有的性能會徹底打敗Pound。

– Emmett Shear

我們使用Nginx作為主要的軟體用於一個免費的託管平台,我已經在Nginx中開發了一個特定的模塊用於banner潛入和統計計算,現在我們的中央伺服器可以處理大約150-200Mbit/s高度分散的http流量(所有的文件都很小)。

我認為這是非常好的結果。因為在同樣的伺服器上面Apache不管怎麼優化,甚至都不能處理60-80Mbit/s。

– Alexey Kovyrin


陣子,我們把我們的前端IMAP/POP代理從perdition切換到了nginx…,現在我們又使用nginx來做前端web代理伺服器…。最終的結
果是,現在的每台前端代理伺服器可以保持超過10,000並發(IMAP, POP, Web &
SMTP)連接(其中很多還是SSL),僅僅只使用了大約10%的CPU。

– FastMail.fm blog

最近,我們的靜態內容伺服器切換到了Nginx,無疑這是這么多年來我印象最深刻的一款web伺服器。我們運行在一台配有8G內存的機器上,但是nginx進程只使用了可笑的1.4Mb。

– Philip Jacob

我們已經用nginx取代了Squid(反向代理)+Apache的方案,平均負載和CPU使用一樣降低了一半。另外我們的基準測試表明新的配置每秒鍾可以處理的請求數是舊配置的2-3倍。

– HowtoForge

我們用一些CMS系統( Wordpress, Drupal, Joomla, TYPO3等)做了基準測試,結果是Nginx提供網頁的速度比Apache快了50%,同時nginx每秒鍾處理的請求數(RPS)是Apache的177%。

5. [code.nginx] Nginx伺服器高級配置

這里提及的參數是和IPv4網路有關的Linux內核參數。我們可以將這些內核參數的值追加到Linux系統的/etc/sysctl.conf文件中,然後使用如下命令使修改生效:

這些常用的參數包括以下這些。
** 1. net.core.netdev_max_backlog參數 **
net.core.netdev_max_backlog,表示當每個網路介面接收數據包的速率比內核處理這些包的速率快時,允許發送到隊列的數據包的最大數目。一般默認值為128(可能不同的Linux系統該數值也不同)。Nginx伺服器中定義的NGX_LISTEN_BACKLOG默認為511.我們可以將它調整一下:

** 2.net.core.somaxconn參數 **
該參數用於調節系統同時發起的TCP連接數,一般默認值為128。在客戶端存在高並發請求的情況下,在默認值較小,可能導致鏈接超時或者重傳問題,我們可以根亂念據實際需要結合並發請求數來調節此值。

** 3.net.ipv4.tcp_max_orphans參數 **
該參數用於設定系統中最多允許存在多少TCP套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,沒有與用戶文件句柄關聯的TCP套接字將立即被復位,同時給出警告信息。這個限制只是為了防止簡單的DoS(Denial of Service,拒絕服務)攻擊。一般在系統內存比較充足的情況下,可以增大這個參數的賦值:

** 4.net.ipv4.tcp_max_syn_backlog參數 **
該參數用於記錄尚未收到客戶端確認信息的連接請求的最大值。對於擁嘩胡困有128MB內存的系統而言,此參數的默認值是1024,對小內存的系統則是128。一般在系統內存比較充足的情況下,可以增加這個參數的賦值:

** 5.net.ipv4.tcp_timestamps參數 **
該參數用於設置時間戳,這可以避免序列號的卷繞。在一個1Gb/s的鏈路上,遇到以前用過的序列號的概率很大。當此值賦值為0時,禁用對於TCP時間戳的支持。在默認情況下,TCP協議會讓內核接受這種「異常」的數據包。針對Nginx伺服器來說,建議將其關閉:

** 6.net.ipv4.tcp_synack_retries參數 **
該參數用於設置內核放棄TCP連接之前向客戶端發送SYN+ACK包的數量。為了建立對端的連接服務,伺服器和客戶端需要進行三次握手,第二次握手期間,內核需要發送SYN並附帶一個回應前一個SYN的ACK,這個參數主要影響這個進程,一般賦值為1,即內核放棄連接之前發送一次SYN+ACK包,可以設置其為:

** 7.net.ipv4.tcp_syn_retries參數 **
該參數的作用和上一個參數類似,設置內核放棄建立連接之前發送SYN包的數量,它的賦值和上個參數一樣即可:

在Nginx配置文件中,有這樣兩個指令:worker_processes和worker_cpu_affinity,它們可以針對多核CPU進行配置優化。
** 1.worker_processes指令 **
worker_processes指令用來設置Nginx服務的進程數。官方文檔建議此指令一般設置為1即可,賦值太多會影響系統的IO效率,降低Nginx伺服器的性能。為了讓多核CPU能夠很好的並行處理任務,我們可以將worker_processes指令的賦值適當的增大一些,最好是賦值為機器CPU的倍數。當然,這個值並不是越大越好,Nginx進程太多可能增加主進程調度負擔,也可能影響系統的IO效率。針對雙核CPU,建議設置為2或
4。如果是四核CPU,設置為:

設置好worker_processes指做爛令之後,就很有必要設置worker_cpu_affinity指令。

** 2. worker_cpu_affinity指令 **
worker_cpu_affinity指令用來為每個進程分配CPU的工作內核。這個指令用來為每個進程分配CPU的工作內核。這個指令的設置方法有些麻煩。
如下圖所示:

worker_cpu_affinity指令的值是由幾組二進制值表示的。其中,每一組代表一個進程,每組中的每一位表示該進程使用CPU的情況,1表示使用,0表示不使用。注意,二進制位排列順序和CPU的順序是相反的。建議將不同的進程平均分配到不同的CPU運行內核上。
如果設置的Nginx服務的進程數為4,CPU為4核,因此會有四組值,並且每組有四位,所以,此指令的設置為:

四組二進制數值分別對應4個進程,第一個進程對應0001,表示使用第一個CPU內核。第二個進程對應0010,表示使用第二個CPU內核,以此類推。
如果將worker_processes指令的值賦值為8,即賦值為CPU內核個數的兩倍,則worker_cpu_affinity指令的設置可以是:

如果一台機器的CPU是八核CPU,並且worker_processes指令的值賦值為8,那麼worker_cpu_affinity指令的設置可以是:

** 1.keepalive_timeout指令 **
該指令用於設置Nginx伺服器與客戶端保持連接的超時時間。
這個指令支持兩個選項,中間用空格隔開。第一個選項指定客戶端連接保持活動的超時時間,在這個時間之後,伺服器會關閉此連接。第二個選項可選,其指定了使用Keep-Alive消息頭保持活動的有效時間,如果不設置它,Nginx伺服器不會向客戶端發送Keep-Alive消息頭以保持與客戶端某些瀏覽器(如Mozilla、Konqueror等)的連接,超過設置的時間後,客戶端就可以關閉連接,而不需要伺服器關閉了。你可以根據自己的實際情況設置此值,建議從伺服器的訪問數量、處理速度以及網路狀態方面考慮。下面是此指令的設置示例:

該設置表示Nginx伺服器與客戶端連接保持活動的時間是60s,60s後伺服器與客戶端斷開連接。使用Keep-Alive消息頭保持與客戶端某些瀏覽器(如Mozilla、Konqueror等)的連接時間為50s,50s後瀏覽器主動與伺服器斷開連接。

** 2.send_timeout指令 **
該指令用於設置Nginx伺服器響應客戶端的超時時間,這個超時時間僅針對兩個客戶端和伺服器之間建立連接後,某次活動之間的時間。如果這個時間後客戶端沒有任何活動,Nginx伺服器將會關閉連接。此指令的設置需要考慮伺服器訪問數量和網路狀況等方面。下面是此指令的設置示例:

該設置表示Nginx伺服器與客戶端建立連接後,某次會話中伺服器等待客戶端響應超時10s,就會自動關閉連接。

** 3.client_header_buffer_size指令 **
該指令用於設置Nginx伺服器允許的客戶端請求頭部的緩沖區大小,默認為1KB。此指令的賦值可以根據系統分頁大小來設置。分頁大小可以用以下命令取得:

有過Nginx伺服器工作經驗的可能遇到Nginx伺服器返回400錯誤的情況。查找Nginx伺服器的400錯誤原因比較困難,因為此錯誤並不是每次都會出現,出現錯誤的時候,通常在瀏覽器和日誌里也看不到任何有關提示信息。根據實際的經驗來看,有很大一部分情況是客戶端的請求頭部過大造成的。請求頭部過大,通常是客戶單cookie中寫入了較大的值引起的。於是適當增大此指令的賦值,允許Nginx伺服器接收較大的請求頭部,可以改善伺服器對客戶端的支持能力。一般將此指令賦值為4KB大小,即:

** 4.multi_accept指令 **
該指令用於配置Nginx伺服器是否盡可能多的接收客戶端的網路連接請求,默認值為off。

本節涉及的指令與Nginx伺服器的事件驅動模型密切相關。

其中,number為設置的最大數量。結合worker_processes指令,我們可以計算出Nginx伺服器允許同時連接的客戶端最大數量Client = worker_processes * worker_connections / 2;
在使用Nginx伺服器的過程中,筆者曾經遇到過無法訪問Nginx伺服器的情況,查看日誌發現一直在報如下錯誤:

根據報錯信息,推測可能是Nginx伺服器的最大訪問連接數設置小了。此指令設置的就是Nginx伺服器能接受的最大訪問量,其中包括前端用戶連接也包括其他連接,這個值在理論上等於此指令的值與它允許開啟的工作進程最大數的乘積。此指令一般設置為65535:

此指令的賦值與linux操作系統中進程可以打開的文件句柄數量有關系。按照以上設置修改此項賦值以後,Nginx伺服器報以下錯誤:

究其原因,Linux系統中有一個系統指令open file resource limit,它設置了進程可以打開的文件句柄數量。worker_connections指令的賦值當然不能超過open file resource limit的賦值。可以使用以下命令查看在你的Linux系統中open file resource limit的賦值。

可以通過一下命令將open file resource limit指令的值設為2390251:

這樣,Nginx的worker_connections指令賦值為65535就沒問題了。

其中,limit為Linux平台事件信號隊列的長度上限值。
該指令主要影響事件驅動模型中rfsig模型可以保存的最大信號數。Nginx伺服器的每一個工作進程有自己的事件信號隊列用於暫存客戶端請求發生信號,如果超過長度上線,Nginx伺服器自動轉用poll模型處理未處理器的客戶端請求。為了保證Nginx伺服器對客戶端請求的高效處理,請大家根據實際的客戶端並發請求數量和伺服器運行環境的處理能力設定該值。設置示例為:

其中,number為要設置的數量,默認值均為32。

其中,number為要設置的數量,默認值均為512.
使用kequeue_changes方式,可以設置與內核之間傳遞事件的數量。

其中,number為要設置的數量,默認值均為512。

7.rtsig_signo指令
該指令用於設置rtsig模式使用的兩個信號中的第一個,第二個信號是在第一個信號的編號上加1,語法為:

默認的第一個信號設置為SIGRTMIN+10。

提示
在Linux中可以使用一下命令查看系統支持的SIGRTMIN有哪些。

8.rtsig_overflow_* 指令
該指令代表三個具體的指令,分別為rtsig_overflow_events指令、rtsig_overflow_test指令和rtsig_overflow_threshold指令。這些指令用來控制當rtsig模式中信號隊列溢出時Nginx伺服器的處理方式,語法結構為:

其中,number是要設定的值。
rtsig_overflow_events指令指定隊列溢出時使用poll庫處理的事件數,默認值為16。
rtsig_overflow_test指令設定poll庫處理完第幾件事件後將清空rtsig模型使用的信號隊列,默認值為32。

rtsig_overflow_threshold指令指定rtsig模式使用的信號隊列中的事件超過多少時就需要清空隊列了。

6. Nginx下載文件伺服器配置

1.打開配置文件配置一下內容

server {

    listen    9000;    #埠

    server_name localhost;  #服務名

    charset utf-8; # 避免中文亂碼

    root  E:\Download\java; #顯示的根坦模索引目錄,乎亮注意這里要改成你自己的,目錄要存在

    location / {

      autoindex on;       #開啟索引功能

      autoindex_exact_size off; # 關閉計算文件確切大小(單位bytes),只顯示大概大小(單位kb、mb、gb)

      autoindex_localtime on;  # 顯示本機時間而非 GMT 時間

    }

  }

2、配置完成後重啟伺服器
sudo /usr/歲信寬local/nginx/sbin/nginx -s reload

7. 輕量級HTTP伺服器Nginx:為何要選擇Nginx

本章主要介紹Nginx的配置管理和使用。作為一個輕量級的HTTP伺服器
,Nginx與Apache相比有以下優勢:在性能上,它佔用很少的系統資源,能支持更多的並發連接,達到更高的訪問效率:在功能上,Nginx是優秀的代理伺服器和負載均衡伺服器:在安裝配置上,Nginx安裝簡單、配置靈活。下面就詳細介紹Nginx的配置與使用。
相信很多讀者都對Apache非常熟悉,Nginx與Apache類似,也是一款高性能的HTTP和反向代理伺服器軟體,還是一個IMAP/POP3/SMTP代理伺服器。Nginx(發音是enginex)由俄瞎搏羅斯的程序設計師Igor Sysoev開發(Igor將源代碼以類BSD許可證的形式發布).可以運行在UNIX、GNU/Linux、BSD、Mac OS X、Solaris以及Microsoft Windows等操作系統中。隨著Nginx在很多大型網站的廣泛使用,其穩定、高效的特性逐漸被越來越多的用戶認可。
Nginx與Apache的異同
Nginx和Apache一樣,都是HTTP腮務器軟體,在功能實現上都採用模塊化結構設計,都支持通用的語言介面,如PHP、Perl、Python等,同時還支持正向和反向代理、虛擬主機、URL重寫、壓縮傳輸、SSL加密傳輸等。它們之間最大的差別是Apache的處理速度很慢,且佔用很多內存資源,而Nginx卻恰恰相反;在功能實現上,Apache的所有模答孫塊都支持動、靜態編譯,而Nginx模塊都是靜態編譯的磨舉祥,同時,Apache對Fcgi的支持不好,而Nginx對Fcgi的支持非常好:在處理連接方式上,Nginx支持epoll.而Apache卻不支持:在空間使用上,Nginx安裝包僅僅只有幾百K,和Nginx比起來Apache絕對是龐然大物。在了解了Nginx和Apache之間的異同點後基本上就知道了Nginx作為HTTP伺服器的優勢所在。
選擇Nginx的優勢所在
通過上面的簡單介紹,可以看出,Nginx作為HTTP伺服器的優勢是顯而易見的,它有很多其他Web伺服器無法比擬的性能和優勢:
口作為Web伺服器,Nginx處理靜態文件、索引文件,自動索引的效率非常高。
口作為代理伺服器,Nginx可以實現無緩存的反向代理加速,提高網站運行速度。
口作為負載均衡伺服器,Nginx既可以在內部直接支持Rails和PHP,也可以支持HTTP代理伺服器對外進行服務,同時還支持簡單的容錯和利用演算法進行負載均衡。
口在性能方面.Nginx是專門為性能優化而開發的,在實現上非常注重效率。它採用內核Poll模型,可以支持更多的並發連接,最大可以支持對50 000個並發連接數的響應,而且只佔用很低的內存資源。
口在穩定性方面,Nginx採取了分階段資源分配技術,使得CPU與內存的佔用率非常低。
Nginx官方表示,Nginx保持1O OOO個沒有活動的連接,而這些連接只佔用2.5MB內存,因此,類似DOS這樣的攻擊對Nginx來說基本上是沒有任何作用的。

8. 如何利用nginx或tomcat搭建文件伺服器

1. 前仿猜期准備橡大枝 nginx 安裝成功 tomcat 安裝成功 2. 更改nginx的配置文梁敏件 更改nginx.conf文件,在http/server/location層次結構下,添加proxy_pass ; 一句話即可。注意不要放了;結尾。 3. 重啟nginx,在瀏覽器中輸入nginx的訪...

9. 文件伺服器文件載入較慢的解決方案(CDN+Nginx)

通過nginx解決圖片載入較慢,連接數較多,寬頻佔用的問題。可以通過簡單配置達到目的,主要配置以下幾項內容:

小結: 也許是我對nginx的基礎以及理解不夠全面,但是我覺得寬頻因素等條件都擺在那裡,在同一台文件伺服器上也只能是限制客戶端的連接來進行優化。所以只是簡單做了優化後久沒有深化研究,而且我們的文件伺服器上的文件也不少。

CDN(Content Delivery Network): 內容分發網路,通過cdn訪問文件伺服器時,cdn會將文件緩存到cdn伺服器,下一次訪問該文件時,就直接從cdn的緩存伺服器上獲取文件,而不需要到文件伺服器獲取文件。具體的知識介紹可參考 網路 。

阿里雲的CDN介紹:內容分發網路(Content Delivery Network,CDN)是建立並覆蓋在承載網上,由不同區域的伺服器組成的分布式網路。將源站資源緩存到全國各地的邊緣伺服器,供用戶就近獲取,降低源站壓力。

根據文檔中阿里雲在國內擁有2300+節點,所有節點均接入萬兆網卡,單節點存儲容量達40TB 1.5PB,帶寬負載達到40Gbps 200Gbps,具備130Tbps帶寬儲備能力。所以我們暫時選擇了阿里雲的CDN。

我們根據阿里雲的CDN文檔進行配置之後遇到一個問題,cdn的域名配置成功後,在nginx上找不到文件,直接跑出404的異常。後面通過在 nginx中增加了一個解析cdn域名執行文件的配置 之後文件訪問正常。

如果文件數量不算特別多,訪問量不算特別大,可以通過配置本地nginx即可解決部分寬頻壓力,畢竟這個是不用花錢的。如果訪問量下不了,而且寬頻壓力較大,則直接推薦使用阿里雲的CDN服務,配置各種都挺簡單。我們的伺服器是託管在電信機房,百兆共享寬頻,在沒有使用CDN之前,每天8:00-00:00這個時間段基本上伺服器網路下行速度11M/s,配置CDN之後基本在1-5m/s之間浮動。所以說使用CDN還是能解決一大部分問題。

10. ftp+nginx實現文件伺服器

我們需要再nginx.conf配置文件里增加一段配置來攔截所襪姿有的.jpg等圖片請求

gzip on; 是開啟圖片壓縮配好清。不熟悉的培前可以看我的nginx專題 https://www.jianshu.com/nb/18436827
root /xxx 是重定向到本地路徑。 注意ftp後面沒有斜杠。

此時可能會報錯404或者403,那是因為nginx用戶沒有許可權去ftp服務力拿東西。
所以我們需要配置

設置後的截圖

閱讀全文

與nginx網路文件伺服器相關的資料

熱點內容
筆記本電腦卡慢怎麼處理win10 瀏覽:77
編程模擬用什麼軟體 瀏覽:424
數控編程到哪裡找工作 瀏覽:48
ps濾鏡液化膨脹工具 瀏覽:426
一張表的數據比例是多少 瀏覽:497
微信綁不了交行信用卡嗎 瀏覽:86
泰住建201764號文件內容 瀏覽:23
Excel管理文件夾 瀏覽:427
步進編程式控制制器如何設置密碼 瀏覽:43
郵件預覽能打開壓縮文件嗎 瀏覽:615
ps怎麼輸出透明背景的mp4文件 瀏覽:930
廣安哪裡學習數控編程 瀏覽:899
哪些公司好進行數據分析 瀏覽:965
被淘汰的網路熱詞有哪些 瀏覽:956
爐石傳說安卓能不能玩 瀏覽:715
為什麼記事本不能生成c文件 瀏覽:90
蘋果6splus鋼化膜有水氣 瀏覽:783
桃花app在哪裡下載 瀏覽:945
wps怎麼把表格里兩列數據內容合並 瀏覽:813
熊貓app是什麼 瀏覽:615

友情鏈接