天天看點

Nginx 伺服器配置檔案指令

 localtion 配置

        文法結構: location [ =  ~  ~* ^~ ] uri{ ... }

        uri 變量是帶比對的請求字元, 可以是不含正則表達的字元串, 也可以是包含正則的字元串

        其中[ ] 中的是可選項 uri 的是必選項: 用來改變請求字元串與uri的比對方式

        =  用于标準uri 前面 , 要求請求字元串與uri嚴格比對,如果已經比對成功,就停止比對立即處理這個請求

        ~  表示uri包含正規表達式 并且區分大小寫

        ~*  用于表示uri包含正規表達式 不區分大小寫

        ^~  要求找到表示uri和請求字元串比對度最高的location, 然後處理這個要求

  網站錯誤頁面

        1xx:訓示資訊--表示請求已接收,繼續處理

        2xx:成功--表示請求已被成功接收、了解、接受

        3xx:重定向--要完成請求必須進行更進一步的操作

        4xx:用戶端錯誤--請求有文法錯誤或請求無法實作

        5xx:伺服器端錯誤--伺服器未能實作合法的請求

        http消息    代碼    含義

        以移動      301    請求的資料具有新的位置,而且更改是永久的

        重定向      302    請求資料臨時位置更改

        無法找到網頁 400  可以連接配接到伺服器,但是由于位址問題,無法找到網頁

        網站拒絕顯示  404  可以連接配接到網站但是找不到網頁

        無法顯示該頁面 405  可以連接配接網站,頁面内容無法下載下傳,網頁編寫方式問題

        網站無法顯示該頁面 500 伺服器問題

        未執行          501 沒有講正在通路的網站設定顯示為浏覽器所請求的網站

        不支援版本      505  請求的協定版本資訊

      常見:

        200 OK      //用戶端請求成功

        400 Bad Request  //用戶端請求有文法錯誤,不能被伺服器所了解

        401 Unauthorized //請求未經授權,這個狀态代碼必須和WWW-Authenticate報頭域一起使用

        403 Forbidden  //伺服器收到請求,但是拒絕提供服務

        404 Not Found  //請求資源不存在,eg:輸入了錯誤的URL

        500 Internal Server Error //伺服器發生不可預期的錯誤

        503 Server Unavailable  //伺服器目前不能處理用戶端的請求,一段時間後可能恢複正常

        eg:HTTP/1.1 200 OK (CRLF)       

常見的配置檔案說明

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

                    debug  --- 調試級别      輸出日志資訊最全

             info  --- 普通級别      輸出提示資訊

             notice --- 注意級别      輸出注意資訊

              warn  --- 警告級别      輸出一些無關緊要的錯誤資訊

            error  --- 錯誤級别      有影響服務正常運作的錯誤

              crit  --- 嚴重錯誤級别  嚴重錯誤級别

              alert  --- 十分嚴重級别  十分嚴重

            emerg  ---  超級嚴重      超級嚴重

        nginx伺服器的日志檔案輸出到某一檔案或者輸出到标準輸出錯誤輸出到stder:

        後面則是跟的日志級别可選項, 由低到高分為debug .... emerg 設定級别後聯通進階别也會别記錄

        2, user user group

        配置啟動程式的使用者 使用者 組 希望所有能啟動則不寫

        3, worker_processes number | auto

        number 指定nginx程序做多産生woker peocess數

        auto nginx 自動檢測程序數

        4, pid file

        指定pid檔案凡在哪裡

        pid log/nginx.pid  注意設定的時候要配置檔案名,不然找不到

        5, include file

        包含的配置檔案,引入其他的配置

        6, acept_mutex on | off

        設定網絡的連接配接序列化

        7, multi_accept on| off

        設定是否允許同時接受多個網絡連接配接

        8, use method

        事件驅動模型的選擇

        9, worker_connections number

        配置允許每一個workr process 最大連接配接數, 預設是1024

        10, mime-type

        配置資源類型,mime-type是網絡資源的一種媒體類型

        格式: default_type mime-type

        11, access_log path[format[buffer=size]]

        自定義伺服器的日志

        path: 配置伺服器日志檔案的存放的路徑和名稱

        format: 可選項,自定義伺服器日志的格式字元串

        size: 配置臨時存放日志的記憶體緩沖區大小

        12, log_format name sting ...;

        與access_log聯合使用 ,專門用于定義伺服器日志的格式

        并且可以為格式定義一個名字, 讓access_log 友善調用

        name : 格式字元串的名字 預設combined

        string 服務日志的格式字元串

    log_format  main  'remote_addr - remote_user [time_local] "status body_bytes_sent "http_referer" '                      '"

          $remote_addr    10.0.0.1                    ---通路者源位址資訊

    $remote_user      -                              -- nginx伺服器驚醒認證通路時,顯示的認證資訊

    [$time_local]                                          --- 顯示通路時間搓資訊

    "$request"          "GET / HTTP/1.1"      ---  請求的行

                $status                200                        --- 顯示狀态嗎資訊      顯示304的話是因為讀取緩存

    $body_bytes_sent  256                      --- 響應資料的大小資訊

    "http_refer"                                          --- 連結目的地

         "$http_user_agent"                            ---  用戶端通路的浏覽器資訊

    "$http_X_forwarded_for"      簡稱XFF頭,它代表用戶端,也就是HTTP的請求端真實的IP,隻有在通過了HTTP 代理或者負載均衡伺服器時才會添加該項。它不是RFC中定義的标準請求頭資訊,在squid緩存代理伺服器開發文檔中可以找到

  13, sendfile    no | off

        配置允許sendfile方式傳輸檔案

        14, sendfile_max_chunk  size

        配置nginx程序的每個worker_process每次調用senfile()傳輸資料量最大不能超過的值

        15, keepalive_timeout  timeout[header_timeout];

        配置連接配接逾時時間

        timeout 服務端對連接配接的保持時間

        header_timeout, 應答封包頭部的keeplive域設定逾時時間

        16, keepalive_repuests number

        單連結請求數上限

        17, 配置網絡監聽

        配置監聽有三種方法:

            監聽IP位址:

            listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size]

            [sndbuf=size] [deferred]

            監聽配置端口:

            listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size]

            [accept_file=filter]

            監聽socket

            listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_file=filter]

            [deferred]

            address : IP位址

            port: 端口号

            path: socket檔案路徑

            default_server: 辨別符,将此虛拟主機設定為address:port預設主機

            setfib=number: 目前支隊freeBSD有用 以前是0.8.44版本監聽scoket關聯路由表

            backlog=number: 設定監聽函數listen()最多永續多少網絡連接配接挂起 freeBSD預設為-1 其他511

            rcvbuf=size: 監聽socket接受緩存區大小

            sndbuf=size: 監聽socket發送緩存區大小

            deferred :辨別符 将accept()設定為Deferred

            accept_file=filter: 設定監聽端口對請求的過濾, 自對freeBSD和netBSd 5.0+的遊泳

            bind: 辨別符 使用獨立的bind()處理address:port

            ssl: 辨別符,設定繪畫連接配接使用ssl模式進行

        18, server_name name

        基于名稱的虛拟主機配置

        對于多個比對成功的處理優先級:

            準确比對server_name

            通配符在開始時比對server_name成功

            通配符在結尾是比對server_那麼成功

            正規表達式比對server_name成功

        在上訴比對模式中被多次比對會首先處理首次比對成的清求

        19, root path

        配置請求的根目錄

        web伺服器接收到請求後,需要在伺服器指定的目錄尋找請求資源,

        這個路徑就是指定檔案目錄

        20, alias path (location子產品中使用)

        更改location接收到的URI的請求路徑 可以跟着變量資訊

        21, index file ...;

        設定網站的預設首頁

        22, error_page  code ...[=[response]] uri

        設定錯誤頁面資訊

            code 要處理的http錯誤代碼

            resoonse 可選項 講code指定的錯誤代碼轉化為新的錯誤代碼

            uri 錯誤頁面的路徑或者網站位址

        23, allow address | CIDR |all

        配置基于ip的通路允許權限

        address 允許通路用戶端的ip 不支援設定多個

        CIDR 允許通路的用戶端的CIDR 如185.199.110.153/24

        all 表示所有用戶端可以通路

        24, deny address | CIDR |all

        配置基于ip的通路禁止權限

        address 允許通路用戶端的ip 不支援設定多個

        CIDR 允許通路的用戶端的CIDR 如185.199.110.153/24

        all 表示所有用戶端可以通路       

        25, auth_basic string |off

        配置基于密碼的nginx通路權限

        string 開啟認證功能,并配置驗證式的訓示資訊

        off 關閉

        26, auth_basic_user_file file

        配置基于密碼通路nginx通路的權限檔案

        file檔案需要使用絕對路徑