Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。
二、簡介
Nginx(發音同 engine x)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。由俄羅斯的程式設計師Igor Sysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好.中國大陸使用nginx網站使用者有:新浪、網易、 騰訊等。
三、優點
Nginx 可以在大多數 Unix like OS 上編譯執行,並有 Windows 移植版。 Nginx 的1.4.0穩定版已經於2013年4月24日釋出,一般情況下,對於新建站點,建議使用最新穩定版作為生產版本,已有站點的升級急迫性不高。Nginx 的原始碼使用 2-clause BSD-like license。
Nginx 是一個很強大的高效能Web和反向代理伺服器,它具有很多非常優越的特性:
1、在高連線併發的情況下,Nginx是Apache伺服器不錯的替代品:Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平臺之一。能夠支援高達 50,000 個併發連線數的響應,感謝Nginx為我們選擇了 epoll and kqueue作為開發模型。
2、Nginx作為負載均衡伺服器:Nginx 既可以在內部直接支援 Rails 和 PHP 程式對外進行服務,也可以支援作為 HTTP代理伺服器對外進行服務。Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多。
3、Nginx程式碼完全用C語言從頭寫成,已經移植到許多體系結構和作業系統,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函式庫,並且除了zlib、PCRE和OpenSSL之外,標準模組只使用系統C庫函式。而且,如果不需要或者考慮到潛在的授權衝突,可以不使用這些第三方庫。
4、作為郵件代理伺服器:Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器),Last. fm 描述了成功並且美妙的使用經驗。
5、Nginx 是一個安裝非常的簡單,配置檔案非常簡潔(還能夠支援perl語法),Bugs非常少的伺服器:Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動。你還能夠不間斷服務的情況下進行軟體版本的升級。
四、安裝所需的包
1、zlib-1.2.8.tar.gz
下載:file:///C:/Users/sunney/Downloads/zlib-1.2.8.tar.gz
2、openssl-1.0.1e.tar.gz
下載:wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
3、pcre-8.33.tar.gz
下載:wget file:///C:/Users/sunney/Downloads/pcre-8.33.tar.gz
4、nginx-1.5.4.tar.gz
下載:wget http://nginx.org/download/nginx-1.5.4.tar.gz
五、安裝過程
1、安裝編譯環境
yum install libtool yum install -y gcc yum install -y gcc-c++
2、zlib安裝
tar zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make make install
3、openssl安裝
tar zxvf openssl-1.0.1e.tar.gz cd openssl-1.0.1e ./configure --prefix=/opt/openssl make make install
4、pcre安裝
tar zxvf pcre-8.33.tar.gz cd pcre-8.33. ./configure --prefix=/opt/pcre make make install
5、nginx安裝
tar zxvf nginx-1.5.4.tar.gz cd nginx-1.5.4 ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-mail --with-openssl=../openssl-1.0.1e --with-mail_ssl_module --with-debug --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre=../pcre-8.33/ make make install
6、nginx啟動
/usr/local/nginx/sbin/nginx
7、訪問:http://127.0.0.1/
注意:iptables 是否開放80埠
六、安裝出現的問題及解決方法
1、問題1
make[1]: *** [/opt/pcre//Makefile] Error 127
解決方法:
--with-pcre=../pcre-8.33/
--with-pcre=DIR 是設定原始碼目錄,而不是編譯安裝後的目錄。
2、問題2
make[1]: *** [/opt/openssl//Makefile] Error 127
解決方法:
--with-openssl=../openssl-1.0.1e
--with-openssl=DIR 是設定原始碼目錄,而不是編譯安裝後的目錄。
七、總結
繼續深入研究nginx!