日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

Nginx為我們提供了一個配置文件nginx.conf,其存放于/usr/local/nginx,我們來看看。這里是已經去除#注釋部分的內容,同時加上了每個指令代表的含義。

# worker進程的數量,設置為auto,將獲取CPU的核心數
worker_processes  1;

events {
    # 設置每個工作進程同時連接的最大數量
    worker_connections  1024;
}
# 提供配置文件上下文,設置http服務器
http {
    # 設置包含的mime類型
    include       mime.types;
    # 定義響應的默認mime類型
    default_type  Application/octet-stream;
    # 高效文件傳輸模式
    sendfile        on;
    # 長連接超時時間,在此期間客戶端連接將保持打開狀態,如果連接一直活躍,超時時間將自動刷新。如果設置為0,即禁用長連接
    keepalive_timeout  65;
    # 虛擬服務器配置
    server {
        # 配置監聽端口,多個server可以監聽同一個端口,只要server_name + listen的組合值唯一即可。
        listen       80;
        # 配置服務器名稱,如果請求時沒有匹配的服務器名稱,將使用默認的服務器名稱
        server_name  localhost;
        location / {
            # html為相對路徑,相對于當前配置文件所在的目錄
            root   html;
            index  index.html index.htm;
        }
        # 配置錯誤頁面
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

可以看到,nginx.conf配置文件由3部分組成:

  • mAIn塊
  • events塊
  • http塊。http塊中可以配置多個server塊,每個server塊中可以配置多個location塊。

接下來我們來分別看看這三大塊可以進行哪些配置。由于可配置項的數量很多,我們僅列舉出常用的配置選項,具體可見官方文檔:

main塊+events塊:
https://nginx.org/en/docs/ngx_core_module.html

http塊:
https://nginx.org/en/docs/http/ngx_http_core_module.html

2.main塊

main塊也就是全局塊,主要設置一些影響nginx服務器整體運行的配置指令。例如:worker進程數量,master進程pid存放位置等。

以下是main塊的常用配置:

1)配置是否以守護進程方式運行nginx

作用域:main

語法:daemon on | off

默認值:daemon on;

2)配置工作進程的數量

作用域:main

語法:worker_processes number | auto

默認值:worker_processes 1;

3)配置主進程pid存放位置

作用域:main

語法:pid file

默認值:pid logs/nginx.pid;

配置示例:

# 配置以守護進程方式運行
daemon on;
# 配置工作進程數量
worker_processess 2;
# 配置主進程pid存放位置
pid logs/nginx.pid;

3.events塊

events塊主要配置Nginx服務器與客戶端的網絡連接相關指令。例如每個worker進程可以同時支持的最大連接數。

以下是events塊的常用配置:

1)配置有新連接時工作進程的喚醒方式

這里有一個“驚群”的問題,大致意思是:在某一時刻只接收到一個新的網絡連接,多個睡眠的進程會被同時喚醒,但只有一個進程可以獲得連接,這就回造成一部分系統資源的浪費。在Nginx服務中,如果存在多個工作進程,就有可能出現“驚群”問題。

作用域:events

語法:accept_mutex on | off

默認值:accept_mutex off;

作用:如果啟用accept_mutex,有新連接時,工作進程將依次接受。否則,所有工作進程將被通知,如果新連接的數量低,就會造成工作進程資源浪費。

2)配置是否允許同時接收多個連接

作用域:events

語法:multi_accept on | off

默認值:multi_accept off;

作用:如果禁用multi_accept,工作進程將一次接受一個新連接。否則,工作進程將一次接受所有新連接。

3)配置每個工作進程最大連接數

作用域:events

語法:worker_connections number

默認值:worker_connections 512;

作用:設置工作進程可以同時打開的最大連接數。

配置示例:

# 配置以守護進程方式運行
daemon on;
# 配置工作進程數量
worker_processess 2;
# 配置主進程pid存放位置
pid logs/nginx.pid;

events {
    # 配置有新連接時,喚醒工作進程的方式
    accept_mutex on;
    # 配置每個工作進程是否可以同時接收連接
    multi_accept on;
    # 配置每個工作進程的最大連接數
    worker_connections 1024;
}

4.http塊

http塊是Nginx服務器配置中的重要部分,代理、緩存、第三方模塊的配置都放在這個模塊。http塊中可以包含多個server塊,server塊也可以包含多個location塊。

Tips:很多的配置指令可以同時存在于http,server,location塊中,如果同時配置,生效的原則為就近原則

以下是http塊的常用配置:

1)配置mime-type

作用域:http,server,location

語法:default_type mime-type

默認值:default_type text/plain;

作用:定義響應的mime類型

在瀏覽器中,可以顯示文本,圖片等資源,瀏覽器為了區分這些資源,需要使用mime-type(網絡資源的媒體類型)。Nginx作為web服務器,也需要識別客戶端請求的資源類型。因此,Nginx定義了mime.types文件,其中定義了很多的資源類型。我們在定義default_type時,參照這個文件配置即可。

cd /usr/local/nginx
cat mime.types
# 輸出內容,省略絕大部分
types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    image/gif                                        gif;
    image/jpeg                                       jpeg jpg;
    application/json                                 json;
    application/octet-stream                         bin exe dll;
    application/octet-stream                         deb;
    application/octet-stream                         dmg;
    application/octet-stream                         iso img;
    application/octet-stream                         msi msp msm;
    ......
}

2)配置錯誤頁面

作用域:http,server,location,if in location

語法:error_page code ... [=[response]] uri;

作用:定義錯誤對應的響應

示例:

1)指定404錯誤碼對應的響應

error_page 404 /404.html;

2)更改404錯誤碼為200,并指定響應

error_page 404 =200 /empty.gif;

3)指定響應代碼

error_page 404 = /404.php;

3)配置每個連接的最大請求數

作用域:http,server,location

語法:keepalive_requests number

默認值:keepalive_requests 1000;

作用:設置一個連接能提供服務的最大請求數。在發出最大數量的請求后,連接將關閉。定期關閉連接有利于內存的釋放。

4)配置每個連接處理請求的最長時間

作用域:http,server,location

語法:keepalive_time time

默認值:keepalive_time 1h;

作用:設置一個連接處理請求的最長時間。到達該時間后,連接將在隨后的請求處理之后關閉。

5)配置連接超時時間

作用域:http,server,location

語法:keepalive_timeout timeout [header_timeout]

默認值:keepalive_timeout 75s;

作用:設置長連接的超時時間,在此期間,連接將保持打開狀態。零值將禁用長連接

6)配置文件高效傳輸模式

作用域:http,server,location,if in location

語法:sendfile on | off

默認值:sendfile off;

作用:如果開啟此選項,可以提升文件傳輸的速度。

7)包含其他文件

作用域:any

語法:include file

示例:include mime.types;

作用:將另一個文件包含到配置中

配置示例:

# 配置以守護進程方式運行
daemon on;
# 配置工作進程數量
worker_processess 2;
# 配置主進程pid存放位置
pid logs/nginx.pid;

events {
    # 配置有新連接時,喚醒工作進程的方式
    accept_mutex on;
    # 配置每個工作進程是否可以同時接收連接
    multi_accept on;
    # 配置每個工作進程的最大連接數
    worker_connections 1024;
}

http {
    # 配置引入資源的媒體類型文件
    include mime.types;
    # 配置默認的響應類型
    default_type text/plain;
    # 配置每個連接能處理的最大請求數
    keepalive_requests 1000;
    # 配置每個連接處理請求的最長時間
    keepalive_time 1h;
    # 配置每個連接的超時時間
    keepalive_timeout 75s;
    # 配置開啟文件高效傳輸模式
    sendfile on;
}

5.server塊

server塊包含在http塊中,在server塊里,我們可以配置虛擬主機,虛擬主機技術將一臺服務器劃分為多個服務單位,對外表現為多個服務器,從而充分利用服務器硬件資源。這和可以http塊中定義多個server塊契合。

以下是server塊的常用配置:

1)配置網絡監聽端口

listen指令的配置相對復雜,我們這里只看最簡單且常用的一種方式:listen port。

在nginx中有個概念:default_serer,如果沒有顯式指定,則配置文件中定義的第一個server為默認server

作用域:server

語法:listen 8080

作用:監聽指定端口上的所有的連接

2)配置虛擬主機的名稱

作用域:server

語法:server_name name ...

默認值:server_name ""

作用:設置虛擬主機的名稱

server_name的語法看上去比較簡單,支持同時配置多個名稱,第一個為主名稱。

Nginx為我們提供了多種配置形式:使用具體名稱、使用通配符以及使用正則表達式。

1)使用具體名稱

server_name myserver.com www.server.com;

2)使用通配符

可以使用*替換名稱的開頭部分和結尾部分。

server_name *.myserver.com www.myserver.*;

3)使用正則表達式

使用正則表達式,在Nginx中使用正則表達式需要以~開頭。

server_name ~^www.d+.com$;

該正則表達式的含義是:以www開頭,緊跟.(.在正則表達式中有特殊含義,因此需要使用轉義)再緊跟一個或多個0-9的數字(d代表0-9的任意一個數字,+代表其前面的字符出現一次或多次),再緊跟.com

示例:www.4399.com

既然可以通過多種形式來配置server_name,因此在包含多個虛擬主機的配置中,可能會出現一個請求被多個虛擬主機的server_name匹配成功,Nginx做了規定,按照以下優先級匹配虛擬主機:

1)完全匹配server_name成功

2)通配符在開頭部分時匹配server_name成功

3)通配符在結尾部分時匹配server_name成功

4)第一個正則表達式匹配server_name成功

Tips:如果server_name被處于同一優先級的匹配方式多次匹配成功,則首次匹配成功的虛擬主機處理請求。

6.location塊

location塊包含在server塊中,每個server塊可以設置多個location塊。location塊的作用在于,對請求中的URI進行匹配并進行處理。

1)配置location塊

作用域:server,location

語法:location [ = | ~ | ~* | ^~ ] uri { ... }

location @name { ... }

作用:對請求的URI進行匹配

同樣的location的配置也存在多種方式:

Nginx定義了匹配規則:

1)先使用不含正則表達式的location進行匹配,找到匹配度最高的一個

2)再通過包含正則表達式的配置進行匹配,如果能匹配到則停止向下匹配并立即處理請求,否則使用第一步的匹配度最高的location來處理請求。

1)精準匹配,如果匹配成功,則停止向下匹配并立即處理請求

# 精準匹配
location = /test {
    ...
}

2)匹配以/test開頭

# 匹配以/test開頭的URI
location /test {
    ...
}

3)匹配以/test開頭,如果匹配成功,則停止向下匹配并立即處理請求

# 匹配以/test開頭的URI,如果匹配成功,則停止向下匹配并立即處理請求
location ^~ /test {
    ...
}

4)正則匹配,區分大小寫

# 匹配以/test開頭的URI,區分大小寫
location ~ /test {
    ...
}

5)正則匹配,不區分大小寫

# 匹配以/test開頭的URI,不區分大小寫
location ~* /test {
    ...
}

2)配置請求的根目錄

作用域:http, server, location, if in location

語法:root path

默認值:root html

作用:配置請求的根目錄

可以看到默認配置為root html,這里的html是一個相對路徑,相對于當前配置文件所在的目錄

配置示例:

# 配置以守護進程方式運行
daemon on;
# 配置工作進程數量
worker_processess 2;
# 配置主進程pid存放位置
pid logs/nginx.pid;

events {
    # 配置有新連接時,喚醒工作進程的方式
    accept_mutex on;
    # 配置每個工作進程是否可以同時接收連接
    multi_accept on;
    # 配置每個工作進程的最大連接數
    worker_connections 1024;
}

http {
    # 配置引入資源的媒體類型文件
    include mime.types;
    # 配置默認的響應類型
    default_type text/plain;
    # 配置每個連接能處理的最大請求數
    keepalive_requests 1000;
    # 配置每個連接處理請求的最長時間
    keepalive_time 1h;
    # 配置每個連接的超時時間
    keepalive_timeout 75s;
    # 配置開啟文件高效傳輸模式
    sendfile on;
    
    
    server {
        # 配置監聽端口
        listen 8080;
        
        # 配置location
        location / {
            root html;
            index index.html;
        }
        location /test {
            return 200 'test success';
        }
    }
}

以上就是Nginx配置文件的基本配置,Nginx是多模塊化的,還有很多高級功能,我們后面繼續探索。

分享到:
標簽:Nginx
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定