nginx一:安裝和基本應用

Nginx:

目錄php

Nginx:... 1nginx

NGINX簡介和安裝... 1web

網站... 1express

全稱... 2centos

二次開發版... 2緩存

Nginx的特性... 2性能優化

基本功能... 2服務器

web服務相關的功能... 2架構

Nginx的基本架構:... 3併發

模塊類型... 3

nginx主要用途... 3

nginx安裝配置... 3

編譯安裝... 3

前期準備... 3

從官網獲取源碼包... 4

查看編譯幫助文檔... 4

安裝... 4

啓動NGINX. 5

NGINX配置文件... 5

配置文件組成... 5

配置文件配置指令... 6

配置文件結構... 6

全局配置網段:main block. 6

事件驅動配置... 6

http配置段... 6

配置文件簡介... 7

main配置段... 7

 

NGINX簡介和安裝

網站

http://nginx.org/, C10k;

http://www.nginx.com

全稱

完整寫法engine X:簡寫爲nginx

二次開發版

二次開發版tengine(淘寶), OpenResty

Nginx的特性

  1. 模塊化設計,因此較好擴展性;
  2. 高可靠性

         master/worker兩級架構,master主控進程,worker爲子進程,每一個worker都有本身的 核心模塊例如爲了實現http功能有ht_core,和非核心模塊例如ht_proxy,ht_fastcgi

  1. 支持熱部署

         不停機更新配置文件、更換日誌、更新服務器程序版本;

  1. 低內存消耗

         10000個keep-alive鏈接模式下的非活動鏈接(保持鏈接,可是沒有數傳輸)僅消耗2.5M內存;

  1. 支持 event-driven, aio, mmap;
  2. 靜態資源的web服務器;
  3. http協議的反向代理服務器;
  4. pop3, smpt, imap4等郵件協議的反向代理;
  5. 能緩存打開的文件(元數據)、
  6. 支持FastCGI(php-fpm), uWSGI(Python Web Framwork)等協議
  7. 模塊化(非DSO機制),著名模塊有:過濾器zip,SSI,SSL;
  8. 虛擬主機(server)
  9. keepalive
  10. 訪問日誌(支持基於日誌緩衝提升其性能)
  11. url rewirte
  12. 路徑別名
  13. 基於IP及用戶的訪問控制
  14. 支持速率限制及併發數限制;
  15. master/worker

基本功能

web服務相關的功能

Nginx的基本架構:

a)         一個master進程,可生成一個或多個worker進程;

b)         master: 加載配置文件、管理worker進程、平滑升級,...

c)         worker:http服務,http代理,fastcgi代理,...               

模塊類型

  1. 核心模塊:core module
  2. 標準模塊:

a)         Standard HTTP modules

b)         Optional HTTP modules

c)         Mail modules

  1. 第三方模塊:3rd party modules
  2. 靜態資源的web服務器
  3. http服務器反向代理

nginx主要用途

nginx安裝配置

使用yum info nginx查看相關信息,顯示沒有匹配的軟件包能夠列出,說明nginx並無被收錄至centos發行光盤中。因此可使用epel源來安裝nginx。

編譯安裝

前期準備

安裝開發組件

yum -y groupinstall "Development Tools"  "Server Platform Development"

安裝PCRE,zlib,openssl

yum -y install pcre zlib openssl pcre-devel pcre-devel openssl-devel

PCRE – Supports regular expressions. Required by the NGINX Core and Rewrite modules.

zlib – Supports header compression. Required by the NGINX Gzip module.

OpenSSL – Supports the HTTPS protocol. Required by the NGINX SSL module and others.

從官網獲取源碼包

$ wget https://nginx.org/download/nginx-1.14.2.tar.gz

$ tar zxf nginx-1.14.2.tar.gz   #解壓

$ cd nginx-1.14.2

查看編譯幫助文檔

./config --help  #返回以下圖結果

         注意有些模塊前帶有--without,這表明此模塊默認加載。有些模塊前帶有--with這表明此模塊默認不被加載須要在編譯的時候使用--with-*_module編譯。

 

安裝

./configure

--prefix=/usr/local/nginx

--conf-path=/etc/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/lock/nginx.lock

--with-http_ssl_module

--with-http_stub_status_module

--with-http_gzip_static_module

--with-debug

make &&make install

啓動NGINX

/usr/local/nginx/sbin/nginx

 

這個報錯是由於我在編譯安裝時指定運行worker的用戶爲nginx。然而我沒有在系統中建立這個用戶。

NGINX配置文件

配置文件組成

 

  1. 主配置文件:nginx.conf
  2. 注意:

a)         除去上圖全部文件外,nginx配置文件還包括在nginx.conf中使用include指令指定的配置文件。

b)         上圖中有相似A.conf和A.conf.default的配置文件。其中A.conf.default,是默認的配置文件

配置文件配置指令

  1. 切記:配置指令必須以分號結尾
  2. 格式:Directive  value1 [value2...];
  3. 變量:支持使用變量

a)              內置變量:由模塊引入;

b)              自定義變量:

l    set  variable  value;                                    

c)         引用變量:$variable

配置文件結構

全局配置網段:main block

事件驅動配置

         event {

                  ...

         }

http配置段

         http {

                   ...

                   server {

                            ...

                            server_name

                            root

                            alias

                            location /uri/ {

                                    

                            }

                            ...

                   }

                   server {

                            ...

                   }

         }

配置文件簡介

main配置段

正常運行必備的配置

優化性能相關的配置

用於調試、定位問題的配置

        

  1. 正常運行必備的配置:由核心模塊引入的配置

a)         user USERNAME  [GROUPNAME];

                   指定用於運行worker進程的用戶和組;

                   eg:user  nginx  nginx;

b)         pid  /PATH/TO/PID_FILE;

                   指定nginx進程的pid文件路徑;

                   eg:pid  /var/run/nginx.pid;

 

c)         worker_rlimit_nofile number;

                   指定一個worker進程所可以打開的最大文件數量;                

  1. 性能優化相關的配置:

a)         worker_processes  auto|number;

                   worker進程的個數;一般應該爲物理CPU核心數量減1;

                   能夠爲"auto",實現自動設定;

b)         worker_cpu_affinity  auto|CPUMASK CPUMASK ...;

                   設置worker與CPU的親和力。經過該指令能夠將一個worker進程綁定到指定CPU。

 

c)         worker_priority  number;

                   經過nice值,設置worker進程的優先級,從-20(最高)到19(最低),默認爲0。                  注意內核的有優先級爲-5,所以不建議設值<=-5          

  1. 調試、定位問題的配置:

a)         daemon  off|on;

                   是否以守護進程方式啓動nignx;

                   eg :daemon off

                  

b)         master_process  on|off;

                   是否以master/worker模型運行nginx,設置爲off將不啓動worker進程;

 

c)         error_log  file [level];

l  file:其值能夠是以下幾種

                   PATH/TO/LOG:記錄日誌文件的位置。s

                   Stderr:將日誌到處到標準輸出

                   syslog:server=adderess:將日誌發往指定的日誌服務器

                   memory:size:將日誌輸出到內存中

l  level:設定日誌級別

                   debug, info, notice, warn, error, crit, alert, or emerg

                   注意:錯誤日誌文件及其級別;出於調試的須要,能夠設定爲debug;但debug僅在編譯時使用了「--with-debug」選項時纔有效;

相關文章
相關標籤/搜索