導航:首頁 > IDC知識 > nginx靜態伺服器

nginx靜態伺服器

發布時間:2021-02-13 12:41:52

1、Nginx有什麼優點?為什麼選擇Nginx做web伺服器軟體?

Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點運行超過兩年半了。Igor 將源代碼以類BSD許可證的形式發布。盡管還是測試版,但是,Nginx 已經因為它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名了。nginx是一個小巧而高效的Linux下的web伺服器軟體。開發人員 Igor Sysoev 來自俄羅斯,nginx的話其實已經在一些俄羅斯的大型網站上運行多年,相當的穩定,最近才在美國開始知名起來。而另外一個熱門的web伺服器軟體是Lighttpd,因為運行在Youtube的後台,所以知名度很高。Lighttpd特色在於它能做Flash streaming和對fastcgi的支持,這樣對於Ruby on Rails之類的程序提速不少,比起Apache要好很多。不管是 nginx 還是 lighttpd, 對於用來提供靜態文件都要比Apache好很多很多,主要就是佔用的內存小,Apache和這兩個小巧的伺服器軟體來比實在是個龐然大物啊。Nginx 是一個高性能的 Web 和反向代理伺服器, 它具有有很多非常優越的特性:作為負載均衡伺服器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理伺服器 對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。作為郵件代理伺服器: Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器),Last.fm 描述了成功並且美妙的使用經驗。Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的伺服器: Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。

2、請教一個nginx作為靜態文件伺服器的一些配置

如果是放置靜態文件的話,一般不用特殊配置的

3、apache伺服器和nginx伺服器有什麼區別

Apache與Nginx的優缺點比較

nginx相對於的優點:

輕量級,同樣起web 服務,比apache 佔用更少的內存及資源

抗並發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高並發下nginx 能保持低資源低消耗高性能

高度模塊化的設計,編寫模塊相對簡單

社區活躍,各種高性能模塊出品迅速啊

apache 相對於nginx 的優點:

rewrite ,比nginx 的rewrite 強大

模塊超多,基本想到的都可以找到

少bug ,nginx 的bug 相對較多

超穩定

存在就是理由,一般來說,需要性能的web 服務,用nginx 。如果不需要性能只求穩定,那就apache 吧。後者的各種功能模塊實現得比前者,例如ssl 的模塊就比前者好,可配置項多。這里要注意一點,epoll(freebsd 上是 kqueue )網路IO 模型是nginx 處理性能高的根本理由,但並不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個文件,apache 的select 模型或許比epoll 更高性能。當然,這只是根據網路IO 模型的原理作的一個假設,真正的應用還是需要實測了再說的。

作為 Web 伺服器

相比 Apache,Nginx 使用更少的資源,支持更多的並發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。在高連接並發的情況下,Nginx是Apache伺服器不錯的替代品: Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平台之一. 能夠支持高達 50,000 個並發連接數的響應, 感謝Nginx為我們選擇了 epoll and kqueue 作為開發模型.

Nginx作為負載均衡伺服器: Nginx 既可以在內部直接支持 Rails 和 PHP 程序對外進行服務, 也可以支持作為 HTTP代理 伺服器對外進行服務. Nginx採用C進行編寫, 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多.

作為郵件代理伺服器: Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器), Last.fm 描述了成功並且美妙的使用經驗.

Nginx 是一個安裝非常的簡單 , 配置文件非常簡潔(還能夠支持perl語法), Bugs 非常少的伺服器: Nginx 啟動特別容易, 並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動. 你還能夠不間斷服務的情況下進行軟體版本的升級 .

Nginx 配置簡潔, Apache 復雜

Nginx 靜態處理性能比 Apache 高 3倍以上

Apache 對 PHP 支持比較簡單,Nginx 需要配合其他後端用

Apache 的組件比 Nginx 多

現在 Nginx 才是 Web 伺服器的首選

4、最核心的區別在於apache是同步多進程模型,一個連接對應一個進程;nginx是非同步的,多個連接(萬級別)可以對應一個進程

5、nginx處理靜態文件好,耗費內存少.但無疑apache仍然是目前的主流,有很多豐富的特性.所以還需要搭配著來.當然如果能確定nginx就適合需求,那麼使用nginx會是更經濟的方式.

6、從個人過往的使用情況來看,nginx的負載能力比apache高很多。最新的伺服器也改用nginx了。而且nginx改完配置能-t測試一下配置有沒有問題,apache重啟的時候發現配置出錯了,會很崩潰,改的時候都會非常小心翼翼現在看有好多集群站,前端nginx抗並發,後端apache集群,配合的也不錯。

7、nginx處理動態請求是雞肋,一般動態請求要apache去做,nginx只適合靜態和反向。

8、從我個人的經驗來看,nginx是很不錯的前端伺服器,負載性能很好,在老奔上開nginx,用webbench模擬10000個靜態文件請求毫不吃力。apache對php等語言的支持很好,此外apache有強大的支持網路,發展時間相對nginx更久,bug少但是apache有先天不支持多核心處理負載雞肋的缺點,建議使用nginx做前端,後端用apache。大型網站建議用nginx自代的集群功能

9、Nginx優於apache的主要兩點:1.Nginx本身就是一個反向代理伺服器 2.Nginx支持7層負載均衡;其他的當然,Nginx可能會比apache支持更高的並發,但是根據NetCraft的統計,2011年4月的統計數據,Apache依然佔有62.71%,而Nginx是7.35%,因此總得來說,Aapche依然是大部分公司的首先,因為其成熟的技術和開發社區已經也是非常不錯的性能。

10、你對web server的需求決定你的選擇。大部分情況下nginx都優於APACHE,比如說靜態文件處理、PHP-CGI的支持、反向代理功能、前端Cache、維持連接等等。在Apache+PHP(prefork)模式下,如果PHP處理慢或者前端壓力很大的情況下,很容易出現Apache進程數飆升,從而拒絕服務的現象。

11、可以看一下nginx lua模塊:https://github.com/chaoslaw...apache比nginx多的模塊,可直接用lua實現apache是最流行的,why?大多數人懶得更新到nginx或者學新事物

12、對於nginx,我喜歡它配置文件寫的很簡潔,正則配置讓很多事情變得簡單運行效率高,佔用資源少,代理功能強大,很適合做前端響應伺服器

13、Apache在處理動態有優勢,Nginx並發性比較好,CPU內存佔用低,如果rewrite頻繁,那還是Apache吧

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

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

5、我有三台nginx服務怎麼集群到一起,這三台伺服器都用來解析html頁

簡單的說兩種方案:
1,一台 nginx 伺服器做反向代理,第二台文回件服務答器,第三台做資料庫伺服器
2, 一台 nginx 腳本伺服器,第二台做主庫資料庫伺服器,第三台做從庫資料庫伺服器加靜態伺服器。
這三台服務使用一個靜態 IP,它們之間的關系為區域網,主伺服器掛靜態IP,nginx.conf 設置域名 sever,訪問直接到主伺服器,主庫資料庫伺服器限制資料庫的讀許可權,埠為3306,從庫資料庫限制寫許可權,埠為 3307;兩台資料庫伺服器進行數據同步,實現資料庫讀寫分離,從庫掛載網站靜態內容,如 CSS ,JS, images, flash 等靜態文件,實現動靜分離。

集群的作用主要就是負載均衡,分流負壓流量,資料庫讀寫分離也是為了減緩資料庫讀寫壓力,動靜分離的好處自然是更科學地規劃文件分類,便於伺服器文件的管理。
但一般來說,這些靜態的東西全部用第三方的 SDN 來負載掉。

6、為什麼要使用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%。

7、nginx配置通過IP訪問返回靜態頁面

如果你抄以虛擬主機的方式在nginx上跑網站,就把默認的虛擬主機的主機名寫成ip地址 ,它的網站目錄下放錯誤信息提示頁面的html文件 。默認虛擬主機配置類似:

server {
listen 80;
server_name 192.168.1.12 default;
root D:\ServCode\www;
index index.html;
}

8、偽靜態配置在nginx的伺服器下要怎麼配置

偽靜態配置還是有一些麻煩的,你可以了解一下「創想B2B系統」他們的這個產品,只要空間支持映射,在後台選擇一下就可以了,不用配置的

9、tomct和nginx有什麼不同,都是用來做web伺服器的嗎?

從應用方面
tomcat一般是做動態解析才會用得到,支持jsp的解析,需要配置JDK支持
nginx,則一般是做靜態,本身不具備動態解析功能,需要配置其他插件或通過其他軟體協同才具備動態功能,比如php,tomcat,或者proxypass到win2008的iis伺服器做ASP的動態鏈接等,但nginx在靜態上的功能非常強大,也可做訪問控制,而且可以做成各種協議負載伺服器,包括流媒體的也可以做,具體得去官方網站去看;
在性能方面
如果再不做系統調優的情況下
tomcat一般支持並發並不高100個差不多了
nginx在靜態方面支持並發輕松達幾萬

如果這是個面試的人給你出的這道題目上你回答,你可以簡單的告訴他,兩者應用領域不一樣,tomcat是做java語言的動態解析,而nginx則是一款功能強大的負載軟體,配合各種插件可以實現各種功能

與nginx靜態伺服器相關的知識