nginx在linux系統應用詳解之一基礎介紹和全局配置

一、nginx簡介

      1、特點:

          (1)nginx服務器既可以作為HTTP服務器,也可以作為反向代理服務器,還可以作為郵件服務器;

          (2)能夠快速響應靜態頁面的請求;

          (3) 支持 FastCGI、SSl、VirtualHost、URLRewirte、HTTP Basic Auth 、Gzip等大量使用功能;并且支持共多的第三方功能模塊的擴展 

      2、nginx三類基礎功能介紹

          (1)作為HTTP服務器

                 A、處理靜態文件(如HTML靜態網頁);處理索引文件以及支持自動索引

                 B、支持HTTP下的安全套接層協議SSL

                 C、支持基于IP和servername的虛擬主機設置

                 D、支持重新加載配置以及在線升級時,不用中斷正在處理的請求

                 E、提供3XX-5XX錯誤代碼的重定向功能

                 F、提供遠程FastCGI服務

                 G、支持高并發鏈接

                 、、、眾多功能

          (2)反向代理服務器

                 反向代理是nginx服務器作為web服務器的主要功能之一

                 在提供反向代理服務方面,nginx服務器轉發前端請求性能穩定,并且后端轉發與業務配置相互分離,配置相當靈活

                 它還可以做到負載均衡,解決網絡負載,提高web服務性能。

          (3)支持郵件代理服務

                  支持IMAP和POP3認證

       3、Nginx的程序架構:

            master/worker

            一個master進程:負載加載和分析配置文件、管理worker進程、平滑升級

           一個或多個worker進程:處理并響應用戶請求

          緩存相關的進程:

                   cache loader:載入緩存對象

                   cache manager:管理緩存對象

           nginx在linux系統應用詳解之一基礎介紹和全局配置

二、全局配置段常見的配置指令:

      分類:

            正常運行必備的配置

            優化性能相關的配置

            用于調試及定位問題相關的配置

            事件驅動相關的配置

      1、正常運行必備的配置:

           打開Nginx朱配置文件/etc/nginx/nginx.conf看到全局配置段

                   nginx在linux系統應用詳解之一基礎介紹和全局配置

           (1)user user [group];

                   定義用戶和組工作進程使用的憑證。如果省略組,那么所屬組為用戶基本組。

           (2)pid /PATH/TO/PID_FILE;

                  指定存儲nginx主進程進程號碼的文件路徑;

           (3)include file | mask;

                   指明包含進來的其它配置文件片斷;

           (4)load_module file;1.10版本以后的可以使用DSO機制

                   指明要裝載的動態模塊;

                   查看已存在的模塊

                   nginx在linux系統應用詳解之一基礎介紹和全局配置

         2、性能優化相關的配置:

             (1)worker_processes number | auto;

                    worker進程的數量;通常應該等于小于當前主機的cpu的物理核心數;

                    auto:根據當前主機物理CPU核心數,自動設置work_proceeses數量

             (2)worker_cpu_affinity auto [cpumask];

                    將每一個work_processes進程綁定在一個CPU上

                   注意:如果不綁定即不啟用此項功能,那么worker進程在那個CPU上運行,不確定的,有可能造成在同一個運行服務時間內一個CPU上運行多個worker進程,而有的CPU上運行一個worker進程

             (3)worker_priority number;

                    指定worker進程的nice值,設定worker進程優先級;[-20,20]

             (4)worker_rlimit_nofile number;

                       worker進程所能夠打開的文件數量上限(默認為1024);

                     一個worker進程可以1024個并發,它就可以打開1024個套接字文件(不包括其 它文件),

             (5)worker_connections number;

                    單個worker進程所能處理的最大請求數量

              實驗一:

          手動指定worker進程數量和手動綁定CPU

          指定worker進程優先級為-8

          指定worer進程最大能打開的文件數量6000個(注意:此值要大于等于worker進程量和單個worker進程所能處理的請求數量的乘積)


           nginx在linux系統應用詳解之一基礎介紹和全局配置

                 語法檢查和重載配置文件

                  nginx在linux系統應用詳解之一基礎介紹和全局配置

                 查看nginxworker進程及所綁定的cpunice

                 nginx在linux系統應用詳解之一基礎介紹和全局配置

                可以看到一共4worker進程,nice值為-8 分別綁定在4CPU

            實驗二:

         自動獲取worker進程數量和自動綁定CPU

                nginx在linux系統應用詳解之一基礎介紹和全局配置

               語法檢查和重載配置文件

               nginx在linux系統應用詳解之一基礎介紹和全局配置 

              查看nginxworker進程及所綁定的cpu

              nginx在linux系統應用詳解之一基礎介紹和全局配置

              對比實驗一,可以看到功能生效情況一致,只不過worker進程的綁定位置改變

       3、調試、定位問題:

            (1)daemon on|off;

                    是否以守護進程方式運行Nignx;

            (2)master_process on|off;(主要用于開發測試)

                    是否以master/worker模型運行nginx;默認為on;

            (3)error_log file [level];它不是用rsyslog管理的。是自己本身的功能進行自我管理

       4、事件驅動相關的配置:

            events {

                      …

                     }

            (1)worker_connections number;

                    每個worker進程所能夠打開的最大并發連接數數量;

            (2)use method;

                   指明并發連接請求的處理方法;(有兩種epollselect(它限定1024

                   use epoll;

            (3)accept_mutex on | off;

                   處理新的連接請求的方法;on意味著由各worker輪流處理新請求,Off意味著每個新請求的到達都會通知所有的worker進程;

       基本的全局配置如下圖:

             nginx在linux系統應用詳解之一基礎介紹和全局配置

原創文章,作者:zq,如若轉載,請注明出處:http://www.www58058.com/78194

(0)
zqzq
上一篇 2017-06-19 08:34
下一篇 2017-06-19 10:55

相關推薦

  • 淺述vim操作

    vim是一種比vi更加強大的模式化的全屏文本編輯器。vim在工作過程中有三種模式:編輯模式、插入模式、末行模式。 編輯模式(默認):又稱命令模式,其工作內容包括移動光標、剪切、粘貼、刪除等 輸入模式:亦可稱為插入模式,主要是在文件中修改文本內容 末行模式:亦稱擴展命令模式,主要是執行vim內置命令的 vim三種模式之間的切換:如下圖   (1)編輯…

    Linux干貨 2016-08-11
  • 字符切割和用戶管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,同一個用戶登錄多次,則只顯示一次 who |cut -d’ ‘ -f1 |sort -u2、取出最后登錄到當前系統的用戶的相關信息。 last |head -1|cut -d’ ‘ -f1 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 cut…

    2017-12-17
  • 系統基礎之用戶,組及權限管理

    用戶及組詳解 概論:   現今,大多數操作系統都是多用戶(Multi-tasks)多任務(Mulit-Users)的系統.在多年前,計算機資源遠沒有現在這么豐富,都是多人使用同一臺計算機,為了保障使用計算機的用戶權益不受到損害,完成資源使用隔離,人們采取了用戶機制標識使用者的方法.  每個使用者都是用戶,用戶是由UID進行標識,通過密碼進…

    Linux干貨 2016-08-04
  • Linux下find命令的使用

    為什么要使用find命令?     Linux系統中有著成千上萬的文件,如果你想要找到自己想要的文件,一款查找軟件是必不可少的,而locate是根據其生成的數據庫進行查找,雖然速度會略快,但非實時查找,有些新的文件或目錄是匹配不到的,而且locate是模糊匹配,而find命令為實時查找,且為精確匹配,如果你對目錄的權限…

    Linux干貨 2016-08-18
  • Linux軟件包管理與實例

    Linux系統的早期,編譯是利用程序代碼生成可執行文件的過程的手動編譯。雖具有一定優勢,但是專業知識要求高,不利于實際操作。因此出現了許多軟件包管理器,最具代表的是由Red Hat 推出的RPM。Yum則有利于解決linux安裝軟件時的依賴性。 所謂依賴性,就是linux系統中的軟件將不同的功能模塊單獨寫入到不同的軟件包中,最后將多個相互依存的軟件包結合起來…

    2017-08-13
  • CentOS6.8編譯安裝—- php-fpm

    安裝環境: [root@station11 ~]# lsb_release -a Distributor ID: CentOS Description:     CentOS release 6.8 (Final) Release:  6.8 Codename:    …

    Linux干貨 2016-12-21
欧美性久久久久