" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx基礎(chǔ)配置(main、events、http、server、location)

 更新時(shí)間:2023年06月01日 10:43:39   作者:fkjavaer  
本文主要介紹了Nginx基礎(chǔ)配置(main、events、http、server、location),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.概覽

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

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

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

  • main塊
  • events塊
  • http塊。http塊中可以配置多個(gè)server塊,每個(gè)server塊中可以配置多個(gè)location塊。

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

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塊也就是全局塊,主要設(shè)置一些影響nginx服務(wù)器整體運(yùn)行的配置指令。例如:worker進(jìn)程數(shù)量,master進(jìn)程pid存放位置等。

以下是main塊的常用配置:

1)配置是否以守護(hù)進(jìn)程方式運(yùn)行nginx

作用域:main

語法:daemon on | off

默認(rèn)值:daemon on;

2)配置工作進(jìn)程的數(shù)量

作用域:main

語法:worker_processes number | auto

默認(rèn)值:worker_processes 1;

3)配置主進(jìn)程pid存放位置

作用域:main

語法:pid file

默認(rèn)值:pid logs/nginx.pid;

配置示例:

# 配置以守護(hù)進(jìn)程方式運(yùn)行
daemon on;
# 配置工作進(jìn)程數(shù)量
worker_processess 2;
# 配置主進(jìn)程pid存放位置
pid logs/nginx.pid;

3.events塊

events塊主要配置Nginx服務(wù)器與客戶端的網(wǎng)絡(luò)連接相關(guān)指令。例如每個(gè)worker進(jìn)程可以同時(shí)支持的最大連接數(shù)。

以下是events塊的常用配置:

1)配置有新連接時(shí)工作進(jìn)程的喚醒方式

這里有一個(gè)“驚群”的問題,大致意思是:在某一時(shí)刻只接收到一個(gè)新的網(wǎng)絡(luò)連接,多個(gè)睡眠的進(jìn)程會(huì)被同時(shí)喚醒,但只有一個(gè)進(jìn)程可以獲得連接,這就回造成一部分系統(tǒng)資源的浪費(fèi)。在Nginx服務(wù)中,如果存在多個(gè)工作進(jìn)程,就有可能出現(xiàn)“驚群”問題。

作用域:events

語法:accept_mutex on | off

默認(rèn)值:accept_mutex off;

作用:如果啟用accept_mutex,有新連接時(shí),工作進(jìn)程將依次接受。否則,所有工作進(jìn)程將被通知,如果新連接的數(shù)量低,就會(huì)造成工作進(jìn)程資源浪費(fèi)。

2)配置是否允許同時(shí)接收多個(gè)連接

作用域:events

語法:multi_accept on | off

默認(rèn)值:multi_accept off;

作用:如果禁用multi_accept,工作進(jìn)程將一次接受一個(gè)新連接。否則,工作進(jìn)程將一次接受所有新連接。

3)配置每個(gè)工作進(jìn)程最大連接數(shù)

作用域:events

語法:worker_connections number

默認(rèn)值:worker_connections 512;

作用:設(shè)置工作進(jìn)程可以同時(shí)打開的最大連接數(shù)。

配置示例:

# 配置以守護(hù)進(jìn)程方式運(yùn)行
daemon on;
# 配置工作進(jìn)程數(shù)量
worker_processess 2;
# 配置主進(jìn)程pid存放位置
pid logs/nginx.pid;
events {
?? ?# 配置有新連接時(shí),喚醒工作進(jìn)程的方式
?? ?accept_mutex on;
?? ?# 配置每個(gè)工作進(jìn)程是否可以同時(shí)接收連接
?? ?multi_accept on;
?? ?# 配置每個(gè)工作進(jìn)程的最大連接數(shù)
?? ?worker_connections 1024;
}

4.http塊

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

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

以下是http塊的常用配置:

1)配置mime-type

作用域:http,server,location

語法:default_type mime-type

默認(rèn)值:default_type text/plain;

作用:定義響應(yīng)的mime類型

在瀏覽器中,可以顯示文本,圖片等資源,瀏覽器為了區(qū)分這些資源,需要使用mime-type(網(wǎng)絡(luò)資源的媒體類型)。Nginx作為web服務(wù)器,也需要識(shí)別客戶端請(qǐng)求的資源類型。因此,Nginx定義了mime.types文件,其中定義了很多的資源類型。我們?cè)诙xdefault_type時(shí),參照這個(gè)文件配置即可。

cd /usr/local/nginx
cat mime.types
# 輸出內(nèi)容,省略絕大部分
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)配置錯(cuò)誤頁面

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

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

作用:定義錯(cuò)誤對(duì)應(yīng)的響應(yīng)

示例:

1)指定404錯(cuò)誤碼對(duì)應(yīng)的響應(yīng)

error_page 404 /404.html;

2)更改404錯(cuò)誤碼為200,并指定響應(yīng)

error_page 404 =200 /empty.gif;

3)指定響應(yīng)代碼

error_page 404 = /404.php;

3)配置每個(gè)連接的最大請(qǐng)求數(shù)

作用域:http,server,location

語法:keepalive_requests number

默認(rèn)值:keepalive_requests 1000;

作用:設(shè)置一個(gè)連接能提供服務(wù)的最大請(qǐng)求數(shù)。在發(fā)出最大數(shù)量的請(qǐng)求后,連接將關(guān)閉。定期關(guān)閉連接有利于內(nèi)存的釋放。

4)配置每個(gè)連接處理請(qǐng)求的最長時(shí)間

作用域:http,server,location

語法:keepalive_time time

默認(rèn)值:keepalive_time 1h;

作用:設(shè)置一個(gè)連接處理請(qǐng)求的最長時(shí)間。到達(dá)該時(shí)間后,連接將在隨后的請(qǐng)求處理之后關(guān)閉。

5)配置連接超時(shí)時(shí)間

作用域:http,server,location

語法:keepalive_timeout timeout [header_timeout]

默認(rèn)值:keepalive_timeout 75s;

作用:設(shè)置長連接的超時(shí)時(shí)間,在此期間,連接將保持打開狀態(tài)。零值將禁用長連接

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

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

語法:sendfile on | off

默認(rèn)值:sendfile off;

作用:如果開啟此選項(xiàng),可以提升文件傳輸?shù)乃俣取?/p>

7)包含其他文件

作用域:any

語法:include file

示例:include mime.types;

作用:將另一個(gè)文件包含到配置中

配置示例:

# 配置以守護(hù)進(jìn)程方式運(yùn)行
daemon on;
# 配置工作進(jìn)程數(shù)量
worker_processess 2;
# 配置主進(jìn)程pid存放位置
pid logs/nginx.pid;
events {
?? ?# 配置有新連接時(shí),喚醒工作進(jìn)程的方式
?? ?accept_mutex on;
?? ?# 配置每個(gè)工作進(jìn)程是否可以同時(shí)接收連接
?? ?multi_accept on;
?? ?# 配置每個(gè)工作進(jìn)程的最大連接數(shù)
?? ?worker_connections 1024;
}
http {
?? ?# 配置引入資源的媒體類型文件
?? ?include mime.types;
?? ?# 配置默認(rèn)的響應(yīng)類型
?? ?default_type text/plain;
?? ?# 配置每個(gè)連接能處理的最大請(qǐng)求數(shù)
?? ?keepalive_requests 1000;
?? ?# 配置每個(gè)連接處理請(qǐng)求的最長時(shí)間
?? ?keepalive_time 1h;
?? ?# 配置每個(gè)連接的超時(shí)時(shí)間
?? ?keepalive_timeout 75s;
?? ?# 配置開啟文件高效傳輸模式
?? ?sendfile on;
}

5.server塊

server塊包含在http塊中,在server塊里,我們可以配置虛擬主機(jī),虛擬主機(jī)技術(shù)將一臺(tái)服務(wù)器劃分為多個(gè)服務(wù)單位,對(duì)外表現(xiàn)為多個(gè)服務(wù)器,從而充分利用服務(wù)器硬件資源。這和可以http塊中定義多個(gè)server塊契合。

以下是server塊的常用配置:

1)配置網(wǎng)絡(luò)監(jiān)聽端口

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

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

作用域:server

語法:listen 8080

作用:監(jiān)聽指定端口上的所有的連接

2)配置虛擬主機(jī)的名稱

作用域:server

語法:server_name name …

默認(rèn)值:server_name “”

作用:設(shè)置虛擬主機(jī)的名稱

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

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

1)使用具體名稱

server_name myserver.com www.server.com;

2)使用通配符

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

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

3)使用正則表達(dá)式

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

server_name ~^www\.\d+\.com$;

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

示例:www.4399.com

既然可以通過多種形式來配置server_name,因此在包含多個(gè)虛擬主機(jī)的配置中,可能會(huì)出現(xiàn)一個(gè)請(qǐng)求被多個(gè)虛擬主機(jī)的server_name匹配成功,Nginx做了規(guī)定,按照以下優(yōu)先級(jí)匹配虛擬主機(jī):

1)完全匹配server_name成功

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

3)通配符在結(jié)尾部分時(shí)匹配server_name成功

4)第一個(gè)正則表達(dá)式匹配server_name成功

??Tips:如果server_name被處于同一優(yōu)先級(jí)的匹配方式多次匹配成功,則首次匹配成功的虛擬主機(jī)處理請(qǐng)求。

6.location塊

location塊包含在server塊中,每個(gè)server塊可以設(shè)置多個(gè)location塊。location塊的作用在于,對(duì)請(qǐng)求中的URI進(jìn)行匹配并進(jìn)行處理。

1)配置location塊

作用域:server,location

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

? location @name { … }

作用:對(duì)請(qǐng)求的URI進(jìn)行匹配

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

Nginx定義了匹配規(guī)則:

1)先使用不含正則表達(dá)式的location進(jìn)行匹配,找到匹配度最高的一個(gè)

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

1)精準(zhǔn)匹配,如果匹配成功,則停止向下匹配并立即處理請(qǐng)求

# 精準(zhǔn)匹配
location = /test {
    ...
}

2)匹配以/test開頭

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

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

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

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

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

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

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

2)配置請(qǐng)求的根目錄

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

語法:root path

默認(rèn)值:root html

作用:配置請(qǐng)求的根目錄

可以看到默認(rèn)配置為root html,這里的html是一個(gè)相對(duì)路徑,相對(duì)于當(dāng)前配置文件所在的目錄

配置示例:

# 配置以守護(hù)進(jìn)程方式運(yùn)行
daemon on;
# 配置工作進(jìn)程數(shù)量
worker_processess 2;
# 配置主進(jìn)程pid存放位置
pid logs/nginx.pid;
events {
?? ?# 配置有新連接時(shí),喚醒工作進(jìn)程的方式
?? ?accept_mutex on;
?? ?# 配置每個(gè)工作進(jìn)程是否可以同時(shí)接收連接
?? ?multi_accept on;
?? ?# 配置每個(gè)工作進(jìn)程的最大連接數(shù)
?? ?worker_connections 1024;
}
http {
?? ?# 配置引入資源的媒體類型文件
?? ?include mime.types;
?? ?# 配置默認(rèn)的響應(yīng)類型
?? ?default_type text/plain;
?? ?# 配置每個(gè)連接能處理的最大請(qǐng)求數(shù)
?? ?keepalive_requests 1000;
?? ?# 配置每個(gè)連接處理請(qǐng)求的最長時(shí)間
?? ?keepalive_time 1h;
?? ?# 配置每個(gè)連接的超時(shí)時(shí)間
?? ?keepalive_timeout 75s;
?? ?# 配置開啟文件高效傳輸模式
?? ?sendfile on;
?? ?server {
?? ??? ?# 配置監(jiān)聽端口
?? ??? ?listen 8080;
?? ??? ?# 配置location
?? ??? ?location / {
?? ??? ??? ?root html;
?? ??? ??? ?index index.html;
?? ??? ?}
?? ??? ?location /test {
?? ??? ??? ?return 200 'test success';
?? ??? ?}
?? ?}
}

到此這篇關(guān)于Nginx基礎(chǔ)配置(main、events、http、server、location)的文章就介紹到這了,更多相關(guān)Nginx基礎(chǔ)配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Nginx啟動(dòng)顯示80端口占用問題的解決方案

    Nginx啟動(dòng)顯示80端口占用問題的解決方案

    這篇文章主要介紹了Nginx啟動(dòng)顯示80端口占用問題的解決方案,文中通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Nginx rewrite正則匹配重寫的方法示例

    Nginx rewrite正則匹配重寫的方法示例

    這篇文章主要介紹了Nginx rewrite正則匹配重寫的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Nginx限制特定IP訪問自己的網(wǎng)站實(shí)現(xiàn)的幾種方法

    Nginx限制特定IP訪問自己的網(wǎng)站實(shí)現(xiàn)的幾種方法

    本文主要介紹了使用Nginx限制特定IP訪問自己的網(wǎng)站的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Nginx SSL/TLS配置的實(shí)現(xiàn)

    Nginx SSL/TLS配置的實(shí)現(xiàn)

    Nginx支持SSL/TLS協(xié)議,用于加密HTTPS通信,本文主要介紹了Nginx SSL/TLS配置的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • nginx的限流和網(wǎng)關(guān)gatway限流詳解

    nginx的限流和網(wǎng)關(guān)gatway限流詳解

    這篇文章主要介紹了nginx的限流和網(wǎng)關(guān)gatway限流,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Centos7安裝、卸載nginx及配置,配置成系統(tǒng)服務(wù)方式(一步到位)

    Centos7安裝、卸載nginx及配置,配置成系統(tǒng)服務(wù)方式(一步到位)

    這篇文章主要介紹了Centos7安裝、卸載nginx及配置,配置成系統(tǒng)服務(wù)方式(一步到位),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx中配置開啟Nginx Status來查看服務(wù)器運(yùn)行狀態(tài)

    Nginx中配置開啟Nginx Status來查看服務(wù)器運(yùn)行狀態(tài)

    這篇文章主要介紹了Nginx中配置開啟Nginx Status來查看服務(wù)器運(yùn)行狀態(tài)的方法,Nginx Status為Nginx服務(wù)器內(nèi)置的狀態(tài)頁,需要的朋友可以參考下
    2016-01-01
  • nginx location語法使用介紹

    nginx location語法使用介紹

    Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用來為匹配的 URI 進(jìn)行配置,URI 即語法中的”/uri/”,可以是字符串或正則表達(dá)式。但如果要使用正則表達(dá)式,則必須指定前綴
    2015-01-01
  • windows下快速安裝nginx并配置開機(jī)自啟動(dòng)的方法

    windows下快速安裝nginx并配置開機(jī)自啟動(dòng)的方法

    這篇文章主要介紹了windows下快速安裝nginx 并配置開機(jī)自啟動(dòng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Nginx實(shí)現(xiàn)if多重判斷配置方法示例

    Nginx實(shí)現(xiàn)if多重判斷配置方法示例

    這篇文章主要介紹了Nginx實(shí)現(xiàn)if多重判斷配置方法示例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

宾阳县| 沧州市| 罗山县| 成武县| 武乡县| 勃利县| 龙游县| 尉犁县| 邯郸县| 石泉县| 宁化县| 武强县| 津市市| 乌鲁木齐县| 迭部县| 汉川市| 汾阳市| 迁安市| 惠安县| 交城县| 嘉峪关市| 巴林右旗| 寻乌县| 灵山县| 乌苏市| 安多县| 红河县| 德保县| 龙川县| 中方县| 当阳市| 临清市| 临泉县| 日照市| 韶关市| 灵璧县| 开阳县| 福州市| 衡水市| 牟定县| 嘉义市|