nginx 基礎配置項詳解

2021-10-08 13:12:48 字數 4171 閱讀 8285

worker_process		1;		#此配置項全域性生效

}}

... 		#全域性塊

events{} #events塊

http #location塊

location [pattern] {} #location塊

} server{}

}

主要配置:pid檔案位置、允許的工作程序數、日誌檔案位置、引入其他配置檔案。

此塊中的配置主要影響客戶端與nginx的網路連線,對nginx的效能影響較大,需要根據實際情況靈活調整。

**、快取、日誌定義等絕大多數的功能和第三方模組的配置。

基於名稱的虛擬主名配置

server_name name1 name2 …:配置虛擬主機名,這裡的「虛擬主機」就是server塊對外提供的虛擬主機。當設定了虛擬主機名後,必須為其配置好dns,然後客戶端就可以向這個虛擬主機名發請求了。

基於ip的虛擬主機配置

使用命令ifconfig ens33:0 ip1 netmask 255.255.255.0 up來為網絡卡設定更多ip,其中up引數表示立即生效。

這種方式配置後,機器重啟後就配置就沒有了。要想讓這個配置永久生效,可以將此命令新增到rc.local中:

echo

"ifconfig ens33:0 ip1 netmask 255.255.255.0 up"

>> /etc/rc.local

linux啟動後會執行rc.local中的所有命令。

ifconfig

#列印網路配置資訊

ens33: flags=4163 mtu 1500

inet 192.168.174.200 netmask 255.255.255.0 broadcast 192.168.174.255

inet6 fe80::20c:29ff:fe7f:f753 prefixlen 64 scopeid 0x20

ether 00:0c:29:7f:f7:53 txqueuelen 1000 (ethernet)

rx packets 9919 bytes 878654 (858.0 kib)

rx errors 0 dropped 0 overruns 0 frame 0

tx packets 6606 bytes 982272 (959.2 kib)

tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

loop txqueuelen 1000 (local loopback)

rx packets 224 bytes 19448 (18.9 kib)

rx errors 0 dropped 0 overruns 0 frame 0

tx packets 224 bytes 19448 (18.9 kib)

tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0

可以看到ip為192.168.174.200,然後我再為此網絡卡新增要監聽的兩個ip

ifconfig ens33:0 192.168.174.211 netmask 255.255.255.0 up

ifconfig ens33:1 192.168.174.212 netmask 255.255.255.0 up

再次檢視網絡卡資訊:

ifconfig

ens33: flags=4163 mtu 1500

inet 192.168.174.200 netmask 255.255.255.0 broadcast 192.168.174.255

inet6 fe80::20c:29ff:fe7f:f753 prefixlen 64 scopeid 0x20

ether 00:0c:29:7f:f7:53 txqueuelen 1000 (ethernet)

rx packets 9887 bytes 875982 (855.4 kib)

rx errors 0 dropped 0 overruns 0 frame 0

tx packets 6579 bytes 976520 (953.6 kib)

tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33:0: flags=4163 mtu 1500

inet 192.168.174.211 netmask 255.255.255.0 broadcast 192.168.174.255

ether 00:0c:29:7f:f7:53 txqueuelen 1000 (ethernet)

ens33:1: flags=4163 mtu 1500

inet 192.168.174.212 netmask 255.255.255.0 broadcast 192.168.174.255

ether 00:0c:29:7f:f7:53 txqueuelen 1000 (ethernet)

location [ = | ~ | ~* | ^~ ] uri

nginx會對使用者請求字串"/server_name/uri"中的uri與location後的資料做匹配,如果根據規則,某個請求的url字串匹配到了當前location,則伺服器就會使用此location中的配置對請求進行處理。

location後的uri有兩種,一種是標準匹配,一種是正則匹配。

當uri前的中的選項為空時,規則如下:

當乙個請求到來,會先找到並記錄標準匹配中匹配度最高的location。然後,進行正則匹配,找到第乙個正則匹配的,即結束搜尋,根據第乙個正則匹配的location處理請求。如果正則匹配全部失敗,則使用標準匹配度最高的location處理請求。

中的可選項,是用來改變匹配方式的,其中的每個可選項的含義如下:

注意:如果uri包含正規表示式,則其前必須加上可選項~*或者~。

root path# path為nginx伺服器接收到請求後查詢資源的根目錄路徑。

此指令可以在http、server、location中配置,一般配置在location中。

location /data/

location ~^/data/(.+\.(htm|html))$

當location塊接收到uri為"/data/index.html"的請求時,會到/locationtest1/other/目錄下查詢index.html檔案

index file...# 如果沒有設定,則預設為index.html。如果設定了多個file,則首先找到了哪個file,就用哪個file響應請求。

設定預設首頁可以有兩個作用:使用者訪問**時,請求位址可以不寫首頁名稱;二是,對乙個請求,可以根據其請求內容設定不同的首頁。

error_page code1 code2 [=[response]] uri

code1 code2是指錯誤**

response 是指將code指定的錯誤**轉化為新的錯誤**response

uri:響應給客戶端的錯誤頁面的路徑或者**,如果是乙個**,nginx會訪問該**獲取頁面並響應給客戶端。

error_page 404 /404.html# 當遇到404時,nginx會去找 nginx安裝路徑/html/404.html 檔案,然後響應給前端。

如果錯誤頁面404.html不是放置在 nginx安裝路徑/html/ 目錄中的,可以在erro_page指令下加上乙個location塊,來指定404頁面的位置:

location /404.html

Nginx的配置 基礎配置項

這一篇博文主要是對前文中nginx的知識點進行補充,了解一下nginx的配置檔案中常用的配置項的具體意義,目的不在於說掌握多少多少複雜的配置項,至少要對自己寫過的conf檔案了解,以下內容參考書籍 深入理解nginx 模組開發與架構解析 第二章。下圖是博主目前所裝的nginx的預設配置檔案 etc ...

Nginx基礎配置詳解(二)

目錄 1 nginx的配置 1.1 埠和目錄的配置 1.2 通過網域名稱虛擬機器 在 usr nginx conf目錄下nginx.conf檔案是nginx的配置檔案。在nginx.conf檔案中新增乙個server節點,修改埠號就可以 自行新增。不影響原來的 也就是乙個nginx裡面可以跑多個埠的...

Nginx 配置項介紹

下面的配置項是我在 mac 上用 homebrew 安裝的nginx1.12 定義 nginx 的執行的使用者和使用者組 user nobody nginx 的程序數 worker processes 1 全域性錯誤日誌定義型別,錯誤級別 debug info notice warn error c...