亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

Nginx簡介_動力節點Java學院整理

2024-08-30 12:29:09
字體:
來源:轉載
供稿:網友

1.什么是Nginx

         Nginx來自俄羅斯的Igor Sysoev在為Rambler Media(http://www.rambler.ru/)工作期間,使用C語言開發了Nginx。Nginx作為Web服務器,一直為俄羅斯著名的門戶網站Rambler Media提供著出色、穩定的服務。

         Igor Sysoev將Nginx的代碼開源,并且賦予其最自由的2-clause BSD-like license許可證。由于Nginx使用基于事件驅動的架構能夠并發處理百萬級別的TCP連接,高度模塊化的設計和自由的許可證使得擴展Nginx功能的第三方模塊層出不窮,而且優秀的設計帶來了極佳的穩定性,因此其作為Web服務器被廣泛應用到大流量的網站上,包括騰訊、新浪、網易、淘寶等訪問量巨大的網站。

        Nginx是一個跨平臺的Web服務器,可運行在Linux、FreeBSD、Solaris、AIX、Mac OS、Windows等操作系統上,并且它還可以使用當前操作系統特有的一些高效API來提高自己的性能。

         例如,對于高效處理大規模并發連接,它支持Linux上的epoll(epoll是Linux上處理大并發網絡連接的利器,9.6.1節中將會詳細說明epoll的工作原理)、Solaris上的event ports和FreeBSD上的kqueue等。

        又如,對于Linux,Nginx支持其獨有的 sendfile系統調用,這個系統調用可以高效地把硬盤中的數據發送到網絡上(不需要先把硬盤數據復制到用戶態內存上再發送),這極大地減少了內核態與用戶態數據間的復制動作。

2.為什么選擇Nginx

為什么選擇Nginx?因為它具有以下特點:

(1)更快

      這表現在兩個方面:一方面,在正常情況下,單次請求會得到更快的響應;另一方面,在高峰期(如有數以萬計的并發請求),Nginx可以比其他Web服務器更快地響應請求。

(2)高擴展性

Nginx的設計極具擴展性,它完全是由多個不同功能、不同層次、不同類型且耦合度極低的模塊組成。因此,當對某一個模塊修復Bug或進行升級時,可以專注于模塊自身,無須在意其他。而且在HTTP模塊中,還設計了HTTP過濾器模塊:一個正常的HTTP模塊在處理完請求后,會有一串HTTP過濾器模塊對請求的結果進行再處理。這樣,當我們開發一個新的HTTP模塊時,不但可以使用諸如HTTP核心模塊、events模塊、log模塊等不同層次或者不同類型的模塊,還可以原封不動地復用大量已有的HTTP過濾器模塊。這種低耦合度的優秀設計,造就了Nginx龐大的第三方模塊,當然,公開的第三方模塊也如官方發布的模塊一樣容易使用。

Nginx的模塊都是嵌入到二進制文件中執行的,無論官方發布的模塊還是第三方模塊都是如此。這使得第三方模塊一樣具備極其優秀的性能,充分利用Nginx的高并發特性,因此,許多高流量的網站都傾向于開發符合自己業務特性的定制模塊。 模塊化設計、較好的擴展性,編譯到Nginx,并隨Nginx啟動而啟動,但是Tengine支持模塊動態裝卸機制。

(3)高可靠性

高可靠性是我們選擇Nginx的最基本條件,因為Nginx的可靠性是大家有目共睹的,很多家高流量網站都在核心服務器上大規模使用Nginx。Nginx的高可靠性來自于其核心框架代碼的優秀設計、模塊設計的簡單性;另外,官方提供的常用模塊都非常穩定,每個worker進程相對獨立,master進程在1個worker進程出錯時可以快速“拉起”新的worker子進程提供服務。

(4)低內存消耗

一般情況下,10 000個非活躍的HTTP Keep-Alive連接在Nginx中僅消耗2.5MB的內存,這是Nginx支持高并發連接的基礎。

(5)單機支持10萬以上的并發連接

這是一個非常重要的特性!隨著互聯網的迅猛發展和互聯網用戶數量的成倍增長,各大公司、網站都需要應付海量并發請求,一個能夠在峰值期頂住10萬以上并發請求的Server,無疑會得到大家的青睞。理論上,Nginx支持的并發連接上限取決于內存,10萬遠未封頂。當然,能夠及時地處理更多的并發請求,是與業務特點緊密相關的,本書第8~11章將會詳細說明如何實現這個特點。

(6)熱部署

master管理進程與worker工作進程的分離設計,使得Nginx能夠提供熱部署功能,即可以在7×24小時不間斷服務的前提下,升級Nginx的可執行文件。當然,它也支持不停止服務就更新配置項、更換日志文件等功能。

(7)最自由的BSD許可協議

這是Nginx可以快速發展的強大動力。BSD許可協議不只是允許用戶免費使用Nginx,它還允許用戶在自己的項目中直接使用或修改Nginx源碼,然后發布。這吸引了無數開發者繼續為Nginx貢獻自己的智慧。

(8)支持事件驅動、AIO、mmap

3.Nginx基本功能:

(1)靜態資源的web服務器,能緩存打開的文件描述符。

(2)http、smtp、pop3協議的反向代理服務器(保護服務器,為服務器過濾不良用戶請求,并封裝用戶請求,扮演成某些服務區,提供緩存減輕后端壓力)

(3)緩存加速、負載均衡

(4)支持FastCGI(fpm,LNMP),uWSGI(Python)

(5)模塊化(非DSO機制)過濾器,zip、ssi及圖像的大小調整

(6)支持SSL,https服務。

4.擴展功能

       基于名稱和IP的虛擬機

       支持Keepalive

      支持平滑升級

      定制訪問日志、支持使用日志緩沖區提供日志存儲性能

      支持url rewrite

     支持路徑別名

     支持基于IP及用戶的訪問控制

     支持速率限制,支持并發數限制

5.Nginx的基本架構:

     一個master進程。負責生成多個worker進程。

     事件驅動:epoll(邊緣觸發,Linux) kqueue(BSD)

     I/O復用器:select,poll,rt signal

     支持sendfile、sendfile64

     支持AIO

     支持mmap內存映射

     nginx的工作模式:非阻塞、事件驅動,由一個master進程生成多個worker進程,每個worker響應n個請求。

6.模塊類型:

    核心模塊、Standard HTTP modules、Optional HTTP modules、Mail modules、第三方模塊

7.源碼安裝

yum -y install gcc gcc-c++yum -y install pcre pcre-develyum -y install zlib zlib-develyum -y install openssl openssl-develtar xf nginx-VERSION.tarcd nginx-VERSIONgroupadd -r nginxuseradd -r nginx -g nginx./configure --help(獲取幫助)--with-xx:原本沒有啟動,啟動起來;--without-xx:原本已啟動,停止啟動./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx/nginx.conf --user=nginx --group=nginx --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/log/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_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/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgimake -j 4 && make installmkdir -pv /var/tmp/nginx/{client,proxy,fastcgi,uwsgi}啟動nginx/usr/local/nginx/sbin/nginx

8.配置文件介紹

main配置段:全局配置段

event{}:定義event模型工作特性

http{}:定義http協議相關的配置

配置指令:要以分號結尾。

支持使用變量:

        內置變量:模塊會提供內置變量定義

       自定義變量:set var_name value;

主配置段的指令:

        正常運行必備的配置

               1.user  username [groupname];指定運行worker進程的用戶和組;

               2.pid  /path/to/pid_file;指定nginx守護進程的pid文件

                            pid /var/run/nginx/nginx.pid

               3.worker_rlimit_nofile   number;指定所有worker進程所能打開最大文件句柄數

        優化性能的配置

               1.worker_processes  #;worker進程的個數;通常應該略少于CPU物理核心數;支持auto

               2.worker_cpu——affinity cpumask...  (例子:00000001  00000010 00000100)

                       優點:提升緩存的命中率
                       cpumask:

                                 0000 0001:1號cpu
                                 0000 0010:2號cpu

                3.timer_resolution:計時器解析度,降低此值,可以減少gettimeofday()系統調用的次數  

              4.worker_priotity number;指明worker進程的nice值(越小,優先級越高)  

      事件相關的配置 

                1.accept_mutex {off|on};

                       master調度用戶請求至各worker進程時使用的負載均衡鎖;on表示能讓多個worker輪流地、序列化地區響應新請求。 

                2.lock_file file;

                       accept-mutex用到的鎖文件路徑  

               3.use [epoll | rtsing | select | poll];

                       指明使用的事件模式,建議讓Nginx自行選擇;

                 4.worker_connections number;

                      設定單個worker進程所能夠處理的最大并發連接數量;(但套接字有限)

                      worker_connections * work_processes < 60000

        用于調試、定位問題(編譯時加入--with-debug)

                1.daemon {on|off};

                     是否以守護進程方式運行nginx;調試時應該設置為Off

                 2.master_process {on|off};

                      是否以master/worker模型來運行nginx,調試時可設置為Off

                 3.error_log 位置級別{debug,info,notice,warn,error,crit,altert,emerg}

        總結:

              常需要進行調整的參數:worker_processes,worker_connections,worker_cpu_affinity,worker_priority

              nginx  -s {stop,quit,reopen,reload} 
              nginx -t :測試語法

9.Nginx作為web服務器時使用的配置:

             http{}:由ngx_http_core_module模塊所引入; 

            配置框架:             

    http{              upstream{...}              server {                   location {...} 類似于httpd中的<Location>,用于定義URL與本地文件系統的映射關系,可有多個              }#每個server類似于httpd中的一個<VirtualHost>           } 

          配置指令 

             1.server{}:定義一個虛擬主機                  

 server{               listen 8080;               server_name www.bearlu.com;               root "/vhost/web1";           }

                 2.listen:指定監聽的地址和端口                           

  listen address[:port]                listen port;

                 3.server_name Name...:名稱還可以使用正則表達式(~開頭)通配符

                            (1)先做精確匹配檢查;

                            (2)左側通配符匹配檢查:*.magedu.com

                             (3)右側通配符匹配檢查:mail.*

                             (4)正則表達式匹配檢查:~*.*/magedu/.com$

                             (5)default_server

                  4.root path;設置資源路徑映射;用于指明請求的URL所對應的資源所在的文件系統上的起始路徑

                  5.location [= | ~ | ~* | ^~ | url] {...}

                            location @name {...}                          

                            允許根據用戶請求的URL來匹配定義的各location;匹配到時,此請求將被相應的location配置塊中的配置所處理,例如訪問控制。

                            =:精確匹配檢查
                            ~:正則表達式模式匹配檢查,區分字符大小寫
                            ~*:正則表達式模式匹配檢查,不區分字符大小寫
                           ^~:URI的前半部分匹配,不支持正則表達式
                          記?。浩ヅ涞膬炏燃墸?、^~、~、~*、不帶符號的location(越后,優先級越低)

                  6.alias path;

                         用于location配置段,定義路徑別名;

                         注意:root表示指明路徑為對應的location  "/" URL

                         alias表示路徑映射,即location指令后定義的URL是相對與alias所指明的路徑而言;

                  7.index file; 默認主頁面

                  8.error_page code [...] 狀態碼  [=code] URL|@name

                             根據http響應狀態碼來指明特用的錯誤頁面;

                             error_page 404  /404_customed.html
                             error_page 404 =200 /404_customed.html

                             [=code]:以指定的響應碼進行響應,而不是默認的原來的響應,默認表示以新資源的狀態碼為其響應碼

                 9.基于IP的訪問控制

                            allow、deny IP/network
                            allow  IP、網絡

               10.基于用戶的訪問控制

                           basic、digest

                                       auth_basic "驗證原因"
                                       auth_basic_user_file /etc/nginx/users/.htpasswd;
                          用htpasswd  -c (第一次創建) -m(使用MD5碼)  /etc/nginx/users/.htpasswd tom 創建用戶賬號和密碼文件

                11.SSL

                             listen 443 ssl
                             server_name www.magedu.com
                             ssl_certificate  /etc/nginx/ssl/nginx.crt;(證書)
                             ssl_certificate_key /etc/nginx/ssl/nginx.key;(私鑰)

                 12.stub_status {on | off};nginx狀態統計頁面

                             僅能用戶location上下文。并且allow IP;  deny all;

                             顯示結果:

                                     Active connections:6  ----->  當前所有處于打開狀態的連接數
                                     server       已接受的連接數          
                                     accepts     已處理過的連接數
                                     handled    已處理的請求書,在保持連接模式下
                                     requests
                                     Reading  正在接收請求狀態的連接數
                                     Writing     請求已經接收完成,正處理請求或發送響應的過程中的連接數
                                     Waiting    處于保持Keepalive連接模式,且處于活動狀態的連接數。

                13.rewrite URL重寫

                             格式:rewrite regex replacement flag 
                             rewrite ^/images/(.*/.jpg)$  /imgs/$1 break;
                              IP/images/a/b/c/1.jpg ---> IP/imgs/a/b/c/1.jpg
                              作用:域名切換、重定向
                             flag: last:此rewrite規則重寫完成后,不再被后面其他rewrite規則處理,而由User Agent重新對重寫后URL再一次發起請求,并從頭開始執行類似的過程;
                                         break:一旦此rewrite規則重寫完成后,發起請求,且不會再被當前location內的任何rewrite規則檢測
                                         redirect:臨時重定向,以302響應碼返回新的URL。(域名可改變)
                                         permanent:永久重定向,以301響應碼返回的URL。

                 14.if上下文

                         語法:if(condition) {...}
                         應用場景:server、location
                        condition:
                                 (1)變量名:變量值為空串,或者以“0”開始,則為false
                                 (2)以變量為操作數構成的比較表達式(=,!=)
                                 (3)正則表達式的模式匹配操作
                                                    ~:區分大小寫的模式匹配
                                                    ~*:不區分大小寫的模式匹配
                                                     !~和!~*:對上面兩種測試取反
                                   (4)測試路徑是否為文件:-f、!-f
                                   (5)測試指定路徑是否為目錄:-d、!-d
                                   (6)測試文件的存在性:-e、!-e
                                    (7)測試文件是否有執行權限:-x、!-x
                         例如:

if($http_user_agent ~* MSIE){                          rewrite ^(.*)$ /msie/$1   break;                   }

                 15.防盜鏈                

     location ~* /.(jpg | gif | jpeg | png)$ {                    valid_referer none blocked www.magedu.com;                    if ($invalid_referer) {                         rewrite ^/ http://www.magedu.com/403.html                    }             }

              16.定制訪問日志格式                     

  log_format   main    "$remote_addr $remote_user [$time_local] $request"             access_log logs/access.log main;

                         此處可以使用nginx各模塊內建變量;

                17.網絡連接相關的配置 

                      1. keepalive_timeout  #;長連接的超時時長

                       2.keepalive_requests #;在一個長連接上所能夠允許請求的最大資源數

                       3.keepalive_disable [msie6 | safari | none];為指定類型的UserAgent禁用長連接

                       4.tcp_nodelay on|off;是否對長連接使用TCP_NODELAY選項;更優化用戶體驗就打開,否則,等待充足的量才返回

                       5.client_header_timeout #;讀取http請求報文首部的超時時長

                       6.client_body_timeout #;讀取http請求報文body部分的超時時長

                       7.send_timeout #;發送相應報文的超時時長

總結

以上所述是小編給大家介紹的Nginx簡介_動力節點Java學院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女久久久久久久| 一区二区三区回区在观看免费视频| 日韩中文字幕在线视频| 日韩美女免费线视频| 狠狠色香婷婷久久亚洲精品| 日韩欧美在线视频免费观看| 国产在线精品成人一区二区三区| 国产丝袜精品第一页| 国产欧美在线视频| 日韩大胆人体377p| 久久中文久久字幕| 1769国内精品视频在线播放| 91久久久久久久久久久久久| 久久躁狠狠躁夜夜爽| 欧美视频裸体精品| 久久久久久有精品国产| 亚洲伊人一本大道中文字幕| 日本国产精品视频| 日韩av网站在线| 欧美激情在线播放| 精品福利一区二区| 国产精品久久久久久久久影视| 国产精品丝袜白浆摸在线| 亚洲精品电影久久久| 亚洲成年人在线播放| 亚洲深夜福利视频| 中文字幕av一区二区| 久久频这里精品99香蕉| 亚洲一区亚洲二区| 国模视频一区二区| 91av在线看| 亚洲激情视频在线播放| 亚洲欧美中文另类| 2018日韩中文字幕| 亚洲va久久久噜噜噜久久天堂| 欧美性生交大片免网| 日韩一区二区精品视频| 亚洲成色999久久网站| 国产精品美女www爽爽爽视频| 国产狼人综合免费视频| 日本a级片电影一区二区| 午夜免费在线观看精品视频| 国产精品精品久久久久久| 黄色精品一区二区| 欧美二区在线播放| 日韩亚洲成人av在线| 国产精品久久电影观看| 久久久久久午夜| 日韩精品在线免费观看视频| 日本午夜在线亚洲.国产| 国产精品video| 亚洲视频欧美视频| 97视频在线观看免费高清完整版在线观看| 国产亚洲精品久久久久久牛牛| 久久影院模特热| 欧美性猛交xxxx乱大交蜜桃| 精品久久久香蕉免费精品视频| 欧美第一黄网免费网站| 久热精品视频在线免费观看| 美女啪啪无遮挡免费久久网站| 亚洲国产欧美精品| 91av视频在线| 久久久亚洲精品视频| 亚洲一区二区三区四区在线播放| 国产视频自拍一区| 国产剧情日韩欧美| 国产精品一香蕉国产线看观看| 亚洲人成网站在线播| 日韩在线观看精品| 日韩动漫免费观看电视剧高清| 日韩国产一区三区| 日日骚av一区| 亚洲精品中文字幕女同| 久热在线中文字幕色999舞| 91黄色8090| 性日韩欧美在线视频| 亚洲女人初尝黑人巨大| 久久99久国产精品黄毛片入口| 国产精品三级久久久久久电影| 久久手机免费视频| 欧美精品在线视频观看| 欧美另类老女人| 懂色av中文一区二区三区天美| 欧美电影免费观看| 欧美激情欧美激情在线五月| 欧美日韩在线观看视频小说| 亚洲精品福利在线观看| 国内精品久久久久久久久| 亚洲男人的天堂在线| 97成人精品视频在线观看| 亚洲欧美日韩国产成人| 国产欧美韩国高清| 欧美激情欧美狂野欧美精品| 久久影视电视剧凤归四时歌| 欧美中文字幕视频| 久久亚洲国产成人| www.精品av.com| 国产精品高潮呻吟久久av无限| 成人午夜一级二级三级| 亚洲黄页视频免费观看| 亚洲天堂免费观看| 91夜夜揉人人捏人人添红杏| 日韩精品欧美激情| 国产精品igao视频| 欧美国产日韩xxxxx| 91视频免费在线| 久久免费国产精品1| 97久久久久久| 在线国产精品播放| 国产精品久久久久久久电影| 国产热re99久久6国产精品| 欧美裸身视频免费观看| 国产精品爽黄69| 久久精品99久久久久久久久| 欧美成人免费大片| 亚洲图片欧洲图片av| 日韩av不卡在线| 色综合久久88色综合天天看泰| 亚洲国产成人精品久久| 成人免费视频a| 亚洲成人av在线播放| 久久精品91久久久久久再现| 黑人极品videos精品欧美裸| 亚洲欧美精品一区二区| 中文字幕一区电影| 亚洲欧美激情精品一区二区| 久久久久久综合网天天| 最近2019中文免费高清视频观看www99| 国产精品女视频| 国产美女扒开尿口久久久| 欧美另类老肥妇| 久久人人爽人人爽人人片av高请| 色偷偷91综合久久噜噜| 在线视频中文亚洲| 日韩av片免费在线观看| 亚洲精品国产拍免费91在线| 538国产精品一区二区在线| 亚洲欧美日韩精品久久| 欧美日韩国产成人高清视频| 国产精品一区二区av影院萌芽| 日韩美女av在线| 日韩欧美亚洲范冰冰与中字| 日韩欧美黄色动漫| 91精品国产91久久久久久最新| 国产视频精品免费播放| 亚洲一区国产精品| 国产精品尤物福利片在线观看| 韩国福利视频一区| 亚州精品天堂中文字幕| 91精品在线观看视频| 欧美在线视频免费观看| 亚洲视频在线观看| 欧日韩不卡在线视频| 黑人巨大精品欧美一区二区三区| 日韩在线视频播放| 在线国产精品视频| 在线精品国产欧美| 久热在线中文字幕色999舞| 这里只有精品在线播放| 国模吧一区二区三区| 国产欧美va欧美va香蕉在| 国产成人在线精品| 欧美亚洲日本黄色| 国产精品久久电影观看|