Nginx服務器安裝部署簡記

1.得到最新版本的Nginx服務器javascript

  Nginx三種版本:1 開發版 Development  2穩定版 Stable version 3 過時版本 Legacy versionshtml

2.安裝nginx準備,linux安裝須要先對源代碼進行編譯。java

  GCC編譯器,全程爲(GNU Compiler Collection),編譯源代碼使用linux

  Automake 工具,用來完成自動建立Makefile的工做。Makefile是make命令的配置文件nginx

    另外,不須要使用autoconf工具,Nginx軟件的自動腳本不是用autoconf生成的,是做者手工編寫的。c++

  pcre庫 正則表達式 用來支持rewrite模塊正則表達式

  zlib庫,支持gzip模塊,壓縮相關緩存

  openssl庫,支持ssl模塊(ssl安全套接層)安全

  相關命令 服務器

    yum  -y install gcc gcc-c++

    yum -y install automake

    yum -y install pcre pcre-devel

    yum -y install zlib zlib-devel

    yum -y install open openssl-devel

  複製地址連接  下載 wget http://nginx.org/download/nginx-1.12.2.tar.gz

3.編譯安裝 Nginx

  解壓Nginx歸檔文件 tar xf nginx-1.12.2.tar.gz

  生成Makefile 文件  ./configure --prefix=/Nginx

  make

  make install

4.Nginx啓動中止控制

  控制信號

    kill [SIGNAL] [PID]
    kill [SIGNAL] [nginx.pid路徑]

  幫助 ./nginx -h

  啓動 ./Nginx 無任何輸出表明啓動成功

  關閉  方法一:./Nginx -g TERM | INT | QUIT     (TERM|INT 快速中止,QUIT用平緩中止)

      方法二:kill TERM|INT|QUIT '/Nginx/logs/nginx.pid'

      方法三:kill -9 | SIGKILL '/Nginx/logs/nginx.pid' 不建議這樣使用

  平滑重啓 ./nginx -g HUP [-c newConfFile]

        kill HUP ‘/Nginx/log/nginx.pid’

        HUP 平滑重啓的信號

  平滑升級

      步驟1,./Nginx/nginx -p newInstallPath 切換Nginx的安裝路徑爲新的

      步驟2,./sbin/Nginx -g USR2   USR2用於平滑升級 用ps -ef |grep nginx 查看新的Nginx是否啓動正常 

          或者 kill USR2 ‘/Nginx/logs/nginx.pid'

      步驟3,./sbin/Nginx -g WINCH 用於平滑中止舊的服務信號

          或者 kill WINCH ‘/Nginx/logs/nginx.pid’

 

5.nginx配置

  全局塊 做用域是nginx服務器全局 包括 用戶(組),容許生成的worker process 數,Nginx PID存放路徑 日誌存放路徑和類型 以及配置文件的引入。

  event塊     主要影響Nginx服務器與用戶的網絡鏈接。經常使用的入 是否開啓序列化,是否容許同時接收多個網絡鏈接,選取哪一種時間模型處理鏈接請求,每一個worker process 能夠同時支持的最大鏈接數。

  HTTP塊 代理 緩存 日誌定義 等絕大多數功能和第三方模塊的配置均可以放在這個模塊中

  server塊 和虛擬主機的概念有着密切的聯繫,

  location塊 基於Nginx服務器接受請求字符串,對除了虛擬主機之外的字符串進行匹配,對特定請求進行處理。

  具體

  配置運行Nginx服務器用戶(組)

   user user [group] 

    user 制定Nginx服務器的用戶

    group 可選項 制定能夠運行Nginx服務器的用戶組

  只有被設置的用戶或用戶組才能啓動nginx

  若是但願全部的用戶均可以啓動Nginx進程,一種方法是將此行註釋掉,一種是將用戶和用戶組設置爲nobody

     配置容許生成worker process數

  worker_processes number |auto 

    number 制定Nginx最多能夠產生的worker process 數

    auto Nginx自動檢測

  配置Nginx進程的PID存放路徑

    pid file

  配置錯誤日誌的存放路徑

    error_log file | stderr [debug|info|notice|warn|error|crit|alert|emerg]

      stderr (輸出到標準錯誤輸出)

  配置文件的引入 

    include file

  設置網絡鏈接的序列化

    應對 驚羣 效應

    accept_mutex on |off

      on 爲開啓狀態 只能在event塊中使用

    將會對多個Nginx進程接受鏈接進行序列化,防止多個進程對鏈接爭搶

 

  ps 如何解決驚羣效應,在接受端的內部設置一個變量,維護是否能夠接受的狀態。

  設置事件驅動模型的選擇

    use method 

      method 有 select poll kqueue epoll rtsig /dev/poll eventport 

  配置最大鏈接數  

    worker_connections number 

      number 默認值是512

  定義MIME_Type

    include mime.types;

    default_type application/octet-stream;

 

    types{

      text/html  html htm shtml;

      image/gif gif;

      application/x-javascript js;

      audio/midi mid midi kar;

      video/3gpp 3gpp 3gp;

    }

 

  自定義服務日誌

    access_log path [format[buffer=size]]

    log_format name string 

    例子

    access_log logs/access.log combined;

    log_format combined '$remote_addr - [$time_local] $request '

              '$status $body_bytes_sent $http_referer'

              '$http_user_agent'

              

  配置容許sendfile方式傳輸文件

    sendfile on |off

      設置爲on表示啓動高效傳輸文件的模式。sendfile可讓Nginx在傳輸文件時直接在磁盤和tcp socket之間傳輸數據。若是這個參數不開啓,

      會先在用戶空間(Nginx進 程空間)申請一個buffer,用read函數把數據從磁盤讀到cache,再從cache讀取到用戶空間的buffer,

      再用write函數把數據從用戶空間的buffer寫入到內核的buffer,最後到tcp socket。開啓這個參數後可讓數據不用通過用戶buffer。

    sendfile_max_chunk size 

        size 爲0爲無限制

  配置連接超時時間

    keepalive_timeout timeout [header_timeout]

    timeout 服務器對鏈接的保持時間 默認值爲75

    例子:keepalive_timeout 120s 100s 服務器保持鏈接的時間設置爲120s,發給用戶端的應答報文頭部中的keepAlive域的超時時間設置爲100s。

    

  單次請求數上線

    keepalive_requests number;

    限制用戶經過某一個鏈接想Nginx服務器發送的請求次數。

  配置網絡監聽(配置指令複雜,使用簡單)

    配置監聽哪一個端口 

    listen *:80 | *:8080

  基於名稱的虛擬機配置

    server_name name

  基於IP的虛擬主機配置

  配置location塊

  配置請求的根目錄 

  更改location的URI

  alias path

  設置網頁的默認首頁

  index

  設置網頁的錯誤頁面

  error_page 404 /404.html

  基於IP配置Nginx的訪問權限

  

  基於密碼配置Nginx的訪問權限

相關文章
相關標籤/搜索