為什么選擇 Nginx?因?yàn)樗哂幸韵绿攸c(diǎn):
1、處理響應(yīng)請(qǐng)求很快
在正常的情況下,單次請(qǐng)求會(huì)得到更快的響應(yīng)。在高峰期,Nginx 可以比其它的 Web 服務(wù)器更快的響應(yīng)請(qǐng)求。
2、高并發(fā)連接
在互聯(lián)網(wǎng)快速發(fā)展,互聯(lián)網(wǎng)用戶(hù)數(shù)量不斷增加的今天,一些大公司、網(wǎng)站都需要面對(duì)高并發(fā)請(qǐng)求,如果有一個(gè)能夠在峰值頂住 10 萬(wàn)以上并發(fā)請(qǐng)求的 Server,肯定會(huì)得到大家的青睞。理論上,Nginx 支持的并發(fā)連接上限取決于你的內(nèi)存,10 萬(wàn)遠(yuǎn)未封頂。
3、低的內(nèi)存消耗
在一般的情況下,10000 個(gè)非活躍的 HTTP Keep-Alive 連接在 Nginx 中僅消耗 2.5MB 的內(nèi)存,這也是 Nginx 支持高并發(fā)連接的基礎(chǔ)。
4、具有很高的可靠性:
Nginx 是一個(gè)高可靠性的 Web 服務(wù)器,這也是我們?yōu)槭裁催x擇 Nginx 的基本條件,現(xiàn)在很多的網(wǎng)站都在使用 Nginx,足以說(shuō)明 Nginx 的可靠性。高可靠性來(lái)自其核心框架代碼的優(yōu)秀設(shè)計(jì)、模塊設(shè)計(jì)的簡(jiǎn)單性,并且這些模塊都非常的穩(wěn)定。
5、高擴(kuò)展性
Nginx 的設(shè)計(jì)極具擴(kuò)展性,它完全是由多個(gè)不同功能、不同層次、不同類(lèi)型且耦合度極低的模塊組成。這種設(shè)計(jì)造就了 Nginx 龐大的第三方模塊。
6、熱部署
master 管理進(jìn)程與 worker 工作進(jìn)程的分離設(shè)計(jì),使得 Nginx 具有熱部署的功能,可以在 7 × 24 小時(shí)不間斷服務(wù)的前提下,升級(jí) Nginx 的可執(zhí)行文件。也可以在不停止服務(wù)的情況下修改配置文件,更換日志文件等功能。
7、自由的 BSD 許可協(xié)議
BSD 許可協(xié)議不只是允許用戶(hù)免費(fèi)使用 Nginx,也允許用戶(hù)修改 Nginx 源碼,還允許用戶(hù)用于商業(yè)用途。
Nginx 安裝:
不同系統(tǒng)依賴(lài)包可能不同,例如 pcre,zlib,openssl 等。
若安裝時(shí)找不到上述依賴(lài)模塊,使用 --with-openssl=<openssl_dir>
、--with-pcre=<pcre_dir>
、--with-zlib=<zlib_dir>
指定依賴(lài)的模塊目錄。如已安裝過(guò),此處的路徑為安裝目錄;若未安裝,則此路徑為編譯安裝包路徑,Nginx 將執(zhí)行模塊的默認(rèn)編譯安裝。
啟動(dòng) Nginx 之后,瀏覽器中輸入 http://localhost 可以驗(yàn)證是否安裝啟動(dòng)成功。
http://wiki.jikexueyuan.com/project/openresty/images/nginx_hello.jpg" alt="" />
Nginx 配置示例:
安裝完成之后,配置目錄 conf 下有以下配置文件,過(guò)濾掉了 xx.default 配置:
ubuntu: /opt/nginx-1.7.7/conf$ tree |grep -v default
.
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── nginx.conf
├── scgi_params
├── uwsgi_params
└── win-utf
除了 nginx.conf
,其余配置文件,一般只需要使用默認(rèn)提供即可。
nginx.conf
是主配置文件,默認(rèn)配置去掉注釋之后的內(nèi)容如下圖所示:
worker_process # 表示工作進(jìn)程的數(shù)量,一般設(shè)置為cpu的核數(shù)
worker_connections # 表示每個(gè)工作進(jìn)程的最大連接數(shù)
server{} # 塊定義了虛擬主機(jī)
listen # 監(jiān)聽(tīng)端口
server_name # 監(jiān)聽(tīng)域名
location {} # 是用來(lái)為匹配的 URI 進(jìn)行配置,URI 即語(yǔ)法中的“/uri/”
location /{} # 匹配任何查詢(xún),因?yàn)樗姓?qǐng)求都以 / 開(kāi)頭
root # 指定對(duì)應(yīng)uri的資源查找路徑,這里html為相對(duì)路徑,完整路徑為
# /opt/nginx-1.7.7/html/
index # 指定首頁(yè)index文件的名稱(chēng),可以配置多個(gè),以空格分開(kāi)。如有多
# 個(gè),按配置順序查找。
真實(shí)用例
http://wiki.jikexueyuan.com/project/openresty/images/nginx_conf.jpg" alt="" />
從配置可以看出,Nginx 監(jiān)聽(tīng)了 80 端口、域名為 localhost、根路徑為 html 文件夾(我的安裝路徑為 /opt/nginx-1.7.7,所以 /opt/nginx-1.7.7/html)、默認(rèn) index 文件為 index.html,index.htm 服務(wù)器錯(cuò)誤重定向到 50x.html 頁(yè)面。
可以看到 /opt/nginx-1.7.7/html/ 有以下文件:
ubuntu:/opt/nginx-1.7.7/html$ ls
50x.html index.html
這也是上面在瀏覽器中輸入 http://localhost
,能夠顯示歡迎頁(yè)面的原因。實(shí)際上訪問(wèn)的是 /opt/nginx-1.7.7/html/index.html
文件。