Net分佈式系統之三:Vm安裝配置Nginx

1、什麼是 Nginx前端

  Nginx 是俄羅斯人編寫的十分輕量級的 HTTP 服務器,Nginx,它的發音爲「engine X」,是一個高性能的HTTP和反向代理服務器,同時也是一個 IMAP/POP3/SMTP 代理服務器。Nginx 是由俄羅斯人 Igor Sysoev 爲俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點運行超過兩年半了。Igor Sysoev 在創建的項目時,使用基於 BSD 許可。nginx

英文主頁:http://nginx.net 。web

到 2013 年,目前有不少國內網站採用 Nginx 做爲 Web 服務器,如國內知名的新浪、16三、騰訊、Discuz、豆瓣等。據 netcraft 統計,Nginx 排名第 3,約佔 15% 的份額(參見:http://news.netcraft.com/archives/category/web-server-survey/ )apache

Nginx 以事件驅動的方式編寫,因此有很是好的性能,同時也是一個很是高效的反向代理、負載平衡。其擁有匹配 Lighttpd 的性能,同時尚未 Lighttpd 的內存泄漏問題,並且 Lighttpd 的 mod_proxy 也有一些問題而且好久沒有更新。vim

如今,Igor 將源代碼以類 BSD 許可證的形式發佈。Nginx 由於它的穩定性、豐富的模塊庫、靈活的配置和低系統資源的消耗而聞名.業界一致認爲它是 Apache2.2+mod_proxy_balancer 的輕量級代替者,不只是由於響應靜態頁面的速度很是快,並且它的模塊數量達到 Apache 的近 2/3。對 proxy 和 rewrite 模塊的支持很完全,還支持 mod_fcgi、ssl、vhosts ,適合用來作 mongrel clusters 的前端 HTTP 響應。後端


 

2、Nginx 特色緩存

  Nginx 作爲 HTTP 服務器,有如下幾項基本特性:性能優化

  • 處理靜態文件,索引文件以及自動索引;打開文件描述符緩衝.
  • 無緩存的反向代理加速,簡單的負載均衡和容錯.
  • FastCGI,簡單的負載均衡和容錯.
  • 模塊化的結構。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。若是由 FastCGI 或其它代理服務器處理單頁中存在的多個 SSI,則這項處理能夠並行運行,而不須要相互等待。
  • 支持 SSL 和 TLSSNI.

Nginx 專爲性能優化而開發,性能是其最重要的考量,實現上很是注重效率 。它支持內核 Poll 模型,能經受高負載的考驗,有報告代表能支持高達 50,000 個併發鏈接數。服務器

Nginx 具備很高的穩定性。其它 HTTP 服務器,當遇到訪問的峯值,或者有人惡意發起慢速鏈接時,也極可能會致使服務器物理內存耗盡頻繁交換,失去響應,只能重啓服務器。例如當前 apache 一旦上到 200 個以上進程,web響應速度就明顯很是緩慢了。而 Nginx 採起了分階段資源分配技術,使得它的 CPU 與內存佔用率很是低。Nginx 官方表示保持 10,000 個沒有活動的鏈接,它只佔 2.5M 內存,因此相似 DOS 這樣的攻擊對 Nginx 來講基本上是毫無用處的。就穩定性而言,Nginx 比 lighthttpd 更勝一籌。併發

Nginx 支持熱部署。它的啓動特別容易, 而且幾乎能夠作到 7*24 不間斷運行,即便運行數個月也不須要從新啓動。你還可以在不間斷服務的狀況下,對軟件版本進行進行升級。

Nginx 採用 master-slave 模型,可以充分利用 SMP 的優點,且可以減小工做進程在磁盤 I/O 的阻塞延遲。當採用 select()/poll() 調用時,還能夠限制每一個進程的鏈接數。

Nginx 代碼質量很是高,代碼很規範,手法成熟,模塊擴展也很容易。特別值得一提的是強大的 Upstream 與 Filter 鏈。Upstream 爲諸如 reverse proxy,與其餘服務器通訊模塊的編寫奠基了很好的基礎。而 Filter 鏈最酷的部分就是各個 filter 沒必要等待前一個 filter 執行完畢。它能夠把前一個 filter 的輸出作爲當前 filter 的輸入,這有點像 Unix 的管線。這意味着,一個模塊能夠開始壓縮從後端服務器發送過來的請求,且能夠在模塊接收完後端服務器的整個請求以前把壓縮流轉向客戶端。

Nginx 採用了一些 os 提供的最新特性如對 sendfile (Linux2.2+),accept-filter (FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,從而大大提升了性能。

固然,Nginx 還很年輕,多多少少存在一些問題,好比:Nginx 是俄羅斯人建立,雖然前幾年文檔比較少,可是目前文檔方面比較全面,英文資料居多,中文的資料也比較多,並且有專門的書籍和資料可供查找。

Nginx 的做者和社區都在不斷的努力完善,咱們有理由相信 Nginx 將繼續以高速的增加率來分享輕量級 HTTP 服務器市場,會有一個更美好的將來。


 

1、Nginx安裝配置

在CentOS7經過命令行安裝Nginx服務器。

  1. 添加Nginx存儲,添加epel repository
    sudo yum install epel-release

     

  2. 檢查是否安裝過Nginx
    find -name nginx

     

  3. 若是有安裝則刪除
    yum remove nginx

     

  4. 安裝Nginx
    sudo yum install nginx

     

  5. 啓動Nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx #可用

     

  6. 將Nginx設置爲啓動系統自動啓動
    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

     

  7. 修改Nginx.conf配置文件
    cd /etc/nginx/ #定位到nginx安裝目錄
    vim nginx.conf #經過vim打開nginx.conf配置文件進行配置

     

  8. Nginx反向代理及負載均衡配置
    upstream 192.168. 137.128{
    
    server 192.168. 137.1:8081;
    
    server 192.168. 137.1:8082;
    
    }
    
    server{
    
    listen   80;
    
    server_name  192.168.137.128;
    
    location /{
    
    proxy_pass   http://192.168. 137.128;
    
    }
    
    }

     

  9. 重啓Nginx服務
    service nginx restart
相關文章
相關標籤/搜索