寫(xiě)在前面
在上一篇博客中,我們已經(jīng)在Linux系統(tǒng)中成功地安裝了Nginx,但是Nginx安裝完成之后,發(fā)生了什么?或者說(shuō)Nginx的相關(guān)配置文件在什么地方?我們?nèi)绻胍鶕?jù)實(shí)際需求修改Nginx配置,應(yīng)該修改哪些文件?
帶著這些疑問(wèn),我們開(kāi)始本篇文章的分享,主要跟大家分享如何找到Nginx的配置文件以及一些基本的配置規(guī)則。
一、Nginx的配置文件在哪些地方
在Linux系統(tǒng)中成功安裝Nginx之后,它并沒(méi)有給我們什么安裝信息提示,如果想要查看Nginx的相關(guān)文件,可以使用Linux一個(gè)rpm包管理工具命令,比如我們想要查看Nginx的相關(guān)文件,可以執(zhí)行以下命令:
rpm -ql nginx
在上述命令中,我們使用rpm包管理工具進(jìn)行查找,其中 -q 表示查詢, -l 表示返回查詢列表。這里查詢Nginx,返回的列表如下:

可以看到,返回的相關(guān)內(nèi)容還是非常多的,這里我們先關(guān)注紅框中的一些文件及文件夾,這是我們?cè)谂渲肗ginx過(guò)程中,經(jīng)常修改的內(nèi)容。
我們切換到 /etc/nginx 文件夾下,在這里有Nginx的主配置文件 /etc/nginx/nginx.conf ,里面的配置代碼沒(méi)有很多,我在這里全部列出來(lái),并對(duì)每一行做一個(gè)注釋。對(duì)里面的每一項(xiàng),我們沒(méi)有必要全部掌握,只需要簡(jiǎn)單了解即可。
user nginx; #運(yùn)行用戶,默認(rèn)即是nginx,可以不進(jìn)行設(shè)置
worker_processes 1; #Nginx進(jìn)程,一般設(shè)置為和CPU核數(shù)一樣
error_log /var/log/nginx/error.log warn; #錯(cuò)誤日志存放目錄
pid /var/run/nginx.pid; #進(jìn)程pid存放位置
events {
worker_connections 1024; # 單個(gè)后臺(tái)進(jìn)程的最大并發(fā)數(shù)
}
http {
include /etc/nginx/mime.types; #文件擴(kuò)展名與類型映射表
default_type application/octet-stream; #默認(rèn)文件類型
#設(shè)置日志模式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; #nginx訪問(wèn)日志存放位置
sendfile on; #開(kāi)啟高效傳輸模式
#tcp_nopush on; #減少網(wǎng)絡(luò)報(bào)文段的數(shù)量
keepalive_timeout 65; #保持連接的時(shí)間,也叫超時(shí)時(shí)間
#gzip on; #開(kāi)啟gzip壓縮
include /etc/nginx/conf.d/*.conf; #包含的子配置項(xiàng)位置和文件
}
作為一個(gè)Nginx小白,這個(gè)文件中的配置我們幾乎不需要做任何修改,大致了解每一項(xiàng)配置的功能就可以了。不過(guò)我們要注意一下文件的最后一行,這一行通過(guò)include語(yǔ)法,引入了Nginx的子配置項(xiàng)和配置文件。
二、Nginx的基本配置文件
這些子配置項(xiàng)是我們要重點(diǎn)關(guān)注的,也是我們后面要具體修改的文件。在默認(rèn)狀態(tài)下,Nginx把這些子配置項(xiàng)全部放在了 /etc/nginx/conf.d/ 文件夾中,我們最好遵守這一默認(rèn)規(guī)則,后期如果要增加新的配置文件,也要放在該文件夾下。
現(xiàn)在我們切換到 /etc/nginx/conf.d/ 文件夾中,可以看到這里目前只有一個(gè)配置文件 default.conf ,這里我把該文件中的代碼列出來(lái),并作出解釋:
server {
listen 80; # 配置監(jiān)聽(tīng)端口
server_name localhost; # 配置域名
location / {
root /usr/share/nginx/html; # 服務(wù)默認(rèn)啟動(dòng)目錄,可以理解為網(wǎng)站代碼存放的目錄
index index.html index.htm; # 默認(rèn)訪問(wèn)的文件
}
# 配置404 403 錯(cuò)誤狀態(tài)碼,一旦出現(xiàn)這些狀態(tài)碼,頁(yè)面跳轉(zhuǎn)到 /404x.html
# location 配置/404x.html 文件所在的文件夾
error_page 404 403 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# 配置5** 錯(cuò)誤狀態(tài)碼,一旦出現(xiàn)這些狀態(tài)碼,頁(yè)面跳轉(zhuǎn)到 /50x.html
# location 配置/50x.html 文件所在的文件夾
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
在這個(gè)默認(rèn)的配置文件中,我們可以指定Nginx服務(wù)監(jiān)聽(tīng)的端口,一般情況下,都是監(jiān)聽(tīng)80端口。然后最重要的就是location選項(xiàng),即:
location / {
root /usr/share/nginx/html; # 服務(wù)默認(rèn)啟動(dòng)目錄,可以理解為網(wǎng)站代碼存放的目錄
index index.html index.htm; # 默認(rèn)訪問(wèn)的文件
}
這是Nginx啟動(dòng)服務(wù)的根目錄配合選項(xiàng),如果你是想要搭建一個(gè)網(wǎng)站,那么根據(jù)上面的配置,你網(wǎng)站的代碼都是放在 /usr/share/nginx/html 目錄下,當(dāng)你打開(kāi)你的網(wǎng)頁(yè)的時(shí)候,會(huì)默認(rèn)查找根目錄下的 index.html 文件,如果找不到這個(gè)文件,那就默認(rèn)查找 index.htm 這個(gè)文件。如果這里指定的文件都沒(méi)有找到,那么Nginx會(huì)報(bào) 403 錯(cuò)誤。
報(bào)了403錯(cuò)誤之后,你的網(wǎng)站會(huì)顯示什么呢?這個(gè)時(shí)候我們要注意到Nginx的error_page配置選項(xiàng):
# 配置404 403 錯(cuò)誤狀態(tài)碼,一旦出現(xiàn)這些狀態(tài)碼,頁(yè)面跳轉(zhuǎn)到 /404x.html
# location 配置/404x.html 文件所在的文件夾
error_page 404 403 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
如果指定的文件找不到,Nginx報(bào)403錯(cuò)誤的時(shí)候,根據(jù)上面的配置,網(wǎng)站就會(huì)到 /usr/share/nginx/html 文件夾下,查找404.html文件,將該文件的內(nèi)容顯示在網(wǎng)頁(yè)上。
需要我們注意的是,配置錯(cuò)誤頁(yè)面的時(shí)候,我們不僅可以指定網(wǎng)站內(nèi)部的一些頁(yè)面,還可以指定其他的一些網(wǎng)站,比如:我們規(guī)定,當(dāng)Nginx服務(wù)報(bào)404錯(cuò)誤的時(shí)候,跳轉(zhuǎn)到 www.baidu.com 頁(yè)面,那么可以這樣配置:
error_page 404 403 https://www.baidu.com/;
寫(xiě)在最后
這就是本篇博客的全部?jī)?nèi)容,主要是跟大家分享Nginx配置文件所存放的位置以及一些基本的配置規(guī)則,在后續(xù)的文章中,會(huì)進(jìn)一步分享如何更詳細(xì)的配置Nginx。
歡迎大家繼續(xù)關(guān)注!
