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