Nginx server之Nginx做爲web服務器(基於域名或IP的web服務器)

一:nginx簡介html

Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,最初供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。  其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好.目前中國大陸使用nginx網站用戶有:新浪、網易、 騰訊,另外知名的微網誌Plurk也使用nginx。前端

Nginx 是一個很牛的高性能Web和反向代理服務器, 它具備有不少很是優越的特性:nginx

做爲 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的併發鏈接,體現更高的效率,這點使 Nginx 尤爲受到虛擬主機提供商的歡迎。在高鏈接併發的狀況下,Nginx是Apache服務器不錯的替代品: Nginx在美國是作虛擬主機生意的老闆們常常選擇的軟件平臺之一. 可以支持高達 50,000 個併發鏈接數的響應, 感謝Nginx爲咱們選擇了 epoll and kqueue 做爲開發模型.web

Nginx做爲負載均衡服務器: Nginx 既能夠在內部直接支持 Rails 和 PHP 程序對外進行服務, 也能夠支持做爲 HTTP代理 服務器對外進行服務. Nginx採用C進行編寫, 不管是系統資源開銷仍是CPU使用效率都比 Perlbal 要好不少. 。Nginx可做爲7層負載均衡服務器來使用。shell

做爲郵件代理服務器: Nginx 同時也是一個很是優秀的郵件代理服務器(最先開發這個產品的目的之一也是做爲郵件代理服務器), Last.fm 描述了成功而且美妙的使用經驗.apache

整體來講nginx的有如下八大優勢:vim

1.高併發鏈接:官方測試能支撐5萬併發鏈接,在實際生產環境中跑到2,~3W併發鏈接。後端

2.內存消耗少:在3W併發鏈接下,開啓的10個NGINX進程才消耗150M內存(15M*10=150M)centos

3.配置文件很是簡單:風格跟程序同樣通俗易懂。瀏覽器

4.成本低廉:Nginx做爲開源軟件,能夠無償使用,而購買F5 BIG-IP、NetScaler

等硬件負載均衡交換機則須要十多萬至幾十萬人民幣。

5.支持rewrite重寫規則:可以根據域名、URL的不一樣,將HTTP請求分發到不一樣的後端服務器羣組。

6.內置的健康檢查功能:若是Nginx Proxy後端的後臺web服務器宕機了,不會音響前端訪問。

7.節省帶寬:支持GZIP壓縮,能夠添加瀏覽器本地緩存的Header頭。

8.穩定性高:用於反向代理,宕機的機率微乎其微。

二:具體配置步驟

 //nginx編譯安裝及管理命令

shell> ./configure --prefix=/usr/local/nginx --user=apache --group=apache --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module && make && make install

#參數解釋
--prefix=PATH                      set installation prefix
--user=USER                        set non-privileged user for
--group=GROUP                      set non-privileged group for
--with-http_ssl_module             enable ngx_http_ssl_module
--with-http_stub_status_module     enable ngx_http_stub_status_module     ---支持監控
--with-http_gzip_static_module     enable ngx_http_gzip_static_module     ---支持壓縮

#啓動nginx
shell> /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#測試nginx配置文件格式是否正確
shell> /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
#關閉nginx
shell> cat /usr/local/nginx/logs/nginx.pid | xargs kill -TERM
#重啓nginx
shell> cat /usr/local/nginx/logs/nginx.pid | xargs kill -HUP
HUP      重啓
TERM,INT 快速中止
USR1    從新打開日誌文件,用於日誌切割
USR2    平滑升級可執行程序
QUIT     從容關閉
WINCH    從容關閉工做進程

//基於IP的虛擬主機

#環境說明
1.centos6.4 IP:10.10.54.157
2.編譯安裝nginx,搭建web服務器,並實現基於IP的虛擬主機
3.一個IP對應一個域名,輸入不一樣的域名DNS解析出不一樣的IP
4.監聽端口:(基於IP)
10.10.54.157:80        www.zijian.com
10.10.54.154:80        bbs.zijian.com
5.
shell> ifconfig eth0:0 10.10.54.154 netmask 255.255.255.0

#配置步驟
shell> vim /usr/local/nginx/cong/nginx.conf
------------------------------------------------------
user  apache apache;
worker_processes  2;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
       }

http {  
  server {
           listen          10.10.54.157:80;      #這個IP根目錄是/var/www/html
           server_name     10.10.54.157;
           charset uft-8;
           access_log logs/www.access.log main;
           root /var/www/html;      
           location / {
           index index.html index.htm;
           }
      }

 server {
            listen         10.10.54.151:80;       #這個IP根目錄是/var/www/bbs
            server_name    10.10.54.151;
            access_log logs/bbs.zijian.com.log;
            root /var/www/bbs;
            location / {
            index index.html index.htm;
            }
      }
}
-------------------------------------------------------

//基於域名的虛擬主機並實現代理

#環境說明
1.nginx服務器 IP:10.10.54.157
2.基於域名的服務器,一個IP對應多個域名,使用不一樣的域名訪問不一樣的網站(即不一樣的根目錄)
3.基於域名的nginx web服務器,同一個IP映射多個域名(www.zijian.com,bbs.zijian.com)

#配置文件修改
shell> vim /usr/local/nginx/cong/nginx.conf
------------------------------------------------------
http {  
  server {
            listen          80;      #www.zijian.com對應的網站是/var/ww/html
            server_name     www.zijian.com;
            charset uft-8;
            access_log logs/www.access.log main;
            root /var/www/html;      
            location / {
            index index.html index.htm;
            }
       }

 server {
            listen         80;       #bbs.zijian.com對應的網站是/var/www/bbs
            server_name    bbs.zijian.com;
            access_log logs/bbs.zijian.com.log;
            root /var/www/bbs;
            location / {
#當在bbs.zijian.com:80端口監聽到鏈接請求時,經過nginx代理到10.10.54.150:1500上面,固然10.10.54.150:1500必須處於正常監聽狀態
            proxy_pass http://10.10.54.150:1500; 
            }
      }
}

#瀏覽器輸入:www.zijian.com 時訪問html,輸入bbs.zijian.com 時訪問bbs
相關文章
相關標籤/搜索