Nginx

##LNMPLinux Nginx MySQL Php

a) 由來: 

        

         Nginx Engine x ,俄羅斯人開發的,開源的WWW服務軟件   一共780K

         本身是一款靜態(HTML,JS,CSS ,JSP等)WWW軟件

b) 優點: 

      

          0.配置簡單,更靈活

          1.高併發(靜態小文件)

          2.佔用資源少,2W併發10個線程,內存消耗幾百兆

          3.功能種類比較多(web ,cache,proxy),每個功能都不是特別強

          4.支持epoll 模型 使得NGINX 可以支持高併發

          5.nginx配合動態服務和apache有區別 

          6.利用nginx 可以對IP限速,可以限制鏈接數

          

c) 使用平臺: UNIX,LIUNX,windos

        wKioL1caZQiTHpONAAFWx4IrVQg820.jpg

 

 d) Nginx應用場合 

         

         1.靜態服務器(圖片,視頻服務),另一個lighttpd. 併發:1-3W

                 HTML,js,css,flv 

        2.  動態服務,nginx+fastcgi的方式運行php   併發:根據數據庫和PHP服務(500-1500

                    apache+php   lighttpd+fcgi php

        3.  反向代理,負載均衡   PV2000W一下,可以直接用Nginx做代理

              方向代理,代替外邊的客戶向服務器訪問  

             正向代理:客戶端請求新浪網站,路由器(緩存服務)代理請求新浪的網站,然後在本地放一份,然後把結果給客戶端

                 haproxy,F5,a10

                 

        4.緩存服務。SQUID  VARNISH 

        

e) Nginx和其他web服務器的對比

1) apache   

            

               1.2.2版本非常穩定強大

               2.Prefork 模式取消了進程創建開銷,性能很高

               3.處理動態業務數據時,因關聯到後端的引擎和數據庫

               4.高併發時消耗系統資源相對比較多一些

               5.基於傳統的select模型

               6.擴展庫, DSOapxs    

               7.功能多,更穩定,更安全 ,插件也多

               

2) Nginx 

           

                  1. 基於異步IO模型(epoll,kquene),性能強,能夠支持上萬併發

                   2.對小文件支持很好,性能很高(限靜態小文件)

                   3.代碼優美,擴展庫必須編譯進主程序

                   4.消耗系統資源比較低

3)Lighttpd(百度貼吧,豆瓣)

                     

                    1.基於異步IO模型,性能和Nginx相近

                    2.擴展庫是so模式,比Nginx要靈活

                    3. 全球使用率比較低,安全性沒有上面兩個好

                    4. 同過插件(mod_secdownload)可實現文件URL地址加密

4)性能對比測試

                   1.靜態數據性能對比

                         wKioL1caZRrAF0nHAAKa1p3EIWc697.jpg

      小結:處理靜態小文件(小於1M),nginxlighttpd apache更有優勢,lighttpd最強 

                    2.動態數據性能對比

                       wKiom1caZGySCS1tAAL9VW7pG_Y046.jpg

 小結:當處理動態數據時,三者的差距不大,從測試結果來看,apache更有優勢,這是因爲處理動態數據的能力取決於Php h和後端數據庫的提供服務能力。 php引擎支持的併發參考值300-1000java引擎併發300-1000,數據庫的併發300-1000

 

<!-- 爲什麼Nginx 的總體性能比apache高?

        因爲nginx採用的epoll網絡I/o 模型  apache使用的是傳統的select 模型 

           -->

**建議: 

    靜態業務:高併發,採用nginxlighttpd,根據自己的掌握程度或公司的要求。 

    動態業務:採用nginxapache均可

    既有靜態業務又有動態業務:NginxApache  不要多選要單選

     最終建議:對外的業務 NGINX 對內的業務 APACHE

    **


5)檢查語法啓動nginx

                  

                   /application/nginx/sbin/nginx -t

                   /application/nginx/sbin/nginx

                   lsof -i :80 查看端口

                    curl IP 地址 

            

6 啓動故障排查

                        nginx:[emerg] getpwnam("nginx") failed 

                    解答: useradd nginx -s /sbin/nologin -M

               

           故障排查思想方法: 

                    1 ping 服務器IP  物理通不通 

                    2 telnet IP服務端口     瀏覽器到web服務器通不通 

                    3 wget 123.0.0.1 模擬用戶訪問,排除http服務自身問題

                    4 服務器本地curl  IP   WEB服務開沒開

                


7 配置一個站點

       apache 默認站點目錄的參數    

       Document 

           

8)  nginx基本配置

            1.Nginx core modules (必需的)

            main   events


9 日誌切割

     cd /server/scripts/

     vi cut_nginx_log.sh

     

         cd /application/nginx/logs &&\

         mv www_access.log www_access_$(date+%F -d -1day).log 

         /application/nginx/sbin/nginx -s reload

                                

                                

                                

10http狀態碼  

        200正常

        301永久跳轉

        403禁止訪問 服務器拒絕請求

        404 找不到頁面

        500 內部服務器出錯了

        502 負載均衡,沒有按照http協議返回

        503 服務當前不可用 可能因爲超載和停機維護

        504  網關超時

        

            

                

        




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章