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...