CentOS5.5下Nginx的安裝配置詳解
一、Nginx簡介
Nginx是俄羅斯人Igor Sysoev開發的一個高性能的HTTP和反向代理服務器。Nginx能夠選擇高效的epoll、kqueue、eventport作爲網絡I/O模型,在高併發的情況下,Nginx是Apache的不錯替代品,它能夠支持高達50000個併發連接數,而內存和CPU的佔用卻非常的低,運行非常穩定。
Nginx已經在俄羅斯的最大的門戶網站——Rambler Media上運行了3年時間,同時俄羅斯有20%的虛擬主機都是用Nginx作爲反響代理服務器。
在國內,已經有新浪博客,網易新聞、六房間等使用Nginx作爲Web服務器或者反向代理服務器。
二、Nginx發展
2009年1月,對185497213個網站進行了抽樣調查,發現出去google自己開發的僅供自己使用的GWS和GFE服務器玩,排在前兩位的分辨是Apache、Microsoft IIS,而Nginx已經超過了Lighttpd,位居第三了,詳見下表:
二、Nginx優點
(1)Nginx 可以在大多數 Unix like OS 上編譯運行,並有 Windows 移植版。 Nginx 的1.2.6穩定版已經於2012年12月11日發佈,[1]1.3.10開發版已經於2012年12月25日發佈,如果新建站點,建議使用最新穩定版作爲生產版本,已有站點升級急迫性不高。Nginx 的源代碼使用 2-clause BSD-like license。
(2)Nginx 是一個很強大的高性能Web和反向代理服務器,它具有很多非常優越的特性:在高連接併發的情況下,Nginx是Apache服務器不錯的替代品:Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟件平臺之一。能夠支持高達 50,000 個併發連接數的響應,感謝Nginx爲我們選擇了 epoll and kqueue作爲開發模型。
(3)Nginx作爲負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP 程序對外進行服務,也可以支持作爲 HTTP代理服務器對外進行服務。Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多。作爲郵件代理服務器:Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作爲郵件代理服務器),Last. fm 描述了成功並且美妙的使用經驗。
(4)Nginx 是一個安裝非常的簡單,配置文件非常簡潔(還能夠支持perl語法),Bugs非常少的服務器:Nginx 啓動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啓動。你還能夠不間斷服務的情況下進行軟件版本的升級。
三、Nginx安裝
Nginx的官方網站是http://nginx.org/cn/,從這裏可以獲得Nginx的最新版本信息。Nginx有三個版本:穩定版、開發版和歷史穩定版。通常建議使用穩定版。具體步驟如下:
(1)安裝依賴軟件pcre-devel和libevent
[root@bogon nginx]# yum install pcre-devel libevent openssl
(2)安裝配置nginx
[root@bogon nginx]# tar -zxvf nginx-1.6.0.tar.gz -C /usr/local/src/
[root@bogon nginx]# cd /usr/local/src/nginx-1.6.0/
[root@bogon nginx-1.6.0]# ./configure --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --with-pcre
[root@bogon nginx-1.6.0]# make && make install
(3)爲了能夠啓動服務因此要把控制腳本放到搜索路徑去,因此要編輯/etc/profile文件
[root@bogon nginx]# vim /etc/profile
加上PATH=$PATH:/usr/local/nginx/sbin
[root@bogon nginx]# . /etc/profile
//測試有沒有語法錯誤
[root@bogon ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] getpwnam("nginx") failed
nginx: configuration file /etc/nginx/nginx.conf test failed
從上面看出現錯誤,原因是沒有創建用戶和組
//創建用戶和組
[root@bogon ~]# groupadd -r nginx
[root@bogon ~]# useradd -r -g nginx nginx
//由於編譯過程中指明瞭/var/tmp/nginx/client/目錄和/var/tmp/nginx/proxy/目錄,因此要創建這兩個目錄。
[root@bogon ~]# mkdir -pv /var/tmp/nginx/client
[root@bogon ~]# mkdir -pv /var/tmp/nginx/proxy
//啓動nginx服務,並查看端口
[root@bogon ~]# nginx
[root@bogon ~]# netstat -tupln |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10868/nginx
出現以上信息表明nginx已經啓動
在瀏覽器中輸入192.168.186.132,如果出現nginx歡迎界面(如下),安裝成功:
四、Nginx配置
1、基於IP訪問站點
(1)基於IP地址的虛擬主機
① 實例要求:
192.168.186.132 /usr/local/nginx/html
192.168.186.133 /usr/local/nginx/tec
② 直接編輯/etc/nginx/nginx.conf文件,編輯結果如下:
[root@bogon nginx]# ifconfig eth0:0 192.168.2.101
[root@bogon nginx]# mkdir /usr/local/nginx/tec
[root@bogon nginx]# echo "hello.this is tec websit.welcome to my pagehome" > index.html
③ 分別在瀏覽器中輸入192.168.186.132和192.168.186.133,打開不同的網頁成功。
⑵ 基於端口的虛擬主機
① 要求:
192.168.186.132 /usr/local/nginx/html 800
192.168.186.133 /usr/local/nginx/tec 80
② 編輯配置文件
[root@bogon tec]# ifconfig eth0:0 down
[root@bogon tec]# vim /etc/nginx/nginx.conf
關閉nginx,然後重新啓動
[root@bogon tec]# pkill -9 nginx
[root@bogon tec]# nginx
③輸入192.168.186.132和192.168.186.132:800,測試結果。
測試成功。
有關Nginx的其他的配置學習會在今後的博客中不斷更新。