您好,登錄后才能下訂單哦!
這篇文章主要講解了“Nginx安裝與配置規(guī)則是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Nginx安裝與配置規(guī)則是什么”吧!
1. 安裝 nginx
可通過(guò) homebrew 可直接安裝:
$brew install nginx
安裝好后,默認(rèn)首頁(yè)的文件在 /usr/local/var/www
文件夾下
默認(rèn)的配置文件地址在 /usr/local/etc/nginx/nginx.conf
nginx 默認(rèn)用的 8080 端口,如果發(fā)現(xiàn)端口被占用了(通過(guò) $lsof -i:8080
查看端口占用情況),可以殺掉使用該端口的進(jìn)程($kill 進(jìn)程pid
)。或者修改 nginx 的默認(rèn)端口(/usr/local/etc/nginx/nginx.conf
)
2. 啟動(dòng) nginx
$brew services start nginx
或者進(jìn)入到目錄 /usr/local/bin
下$./nginx
啟動(dòng)成功后,瀏覽器訪問http://localhost:8080/
,就可以看到 nginx 服務(wù)器返回的靜態(tài)資源了(默認(rèn)是資源/usr/local/var/www/index.html)
3. 停止 nginx
$nginx -s stop
4. 重啟 nginx
$nginx -s reload
5. 查看 nginx 配置路徑信息
$brew info nginx
更多配置可查看
1. location
2. root 與 alias
nginx 中可通過(guò) root 和 alias 指定資源的訪問路徑。
1)root:
location / { root /usr/local/var/www/; index index.html index.htm; }
上面這個(gè)規(guī)則:請(qǐng)求 http://localhost:8080/index.html
這個(gè)地址時(shí),訪問的資源是: /usr/local/var/www/index.html.
請(qǐng)求 http://localhost:8080/test/a.png
這個(gè)地址時(shí),訪問的資源是: /usr/local/var/www/test/a.png.
也就是說(shuō),訪問的資源地址其實(shí)是 root 指定的路徑 + location 匹配到的路徑。
2)alias:
alias 即別名,與 root 的匹配規(guī)則稍有不同。
location /a/ { alias /usr/local/var/www/b/; }
上面這個(gè)規(guī)則:請(qǐng)求 http://localhost:8080/a/
這個(gè)地址時(shí),訪問的資源是: /usr/local/var/www/b/index.html.
請(qǐng)求 http://localhost:8080/a/1.gif
這個(gè)地址時(shí),訪問的資源是: /usr/local/var/www/b/1.gif.
也就是說(shuō),訪問的資源地址就是 alias 指定的路徑,與 location 匹配到的路徑無(wú)關(guān)(會(huì)把 location 匹配到的路徑丟掉)。
3)root 與 alias 的區(qū)別:
alias 只能作用在 location 中,而 root 可以存在 server、http 和 location 中。
alias 后面必須要用 “/” 結(jié)束,否則會(huì)找不到文件,而 root 則對(duì) “/” 可有可無(wú)。
3. try_file
location /test/ { try_files $uri $uri/ /a/1.png; }
try_files 去嘗試到網(wǎng)站目錄讀取用戶訪問的文件,如果第一個(gè)變量存在,就直接返回;不存在則繼續(xù)讀取第二個(gè)變量,如果存在,直接返回;不存在則跳轉(zhuǎn)到第三個(gè)參數(shù)上。
$uri 是 nginx 的一個(gè)變量,存放著用戶訪問的地址。比如訪問http://www.xxx.com/index.html,\$uri就是 /index.html.
$uri/ 代表訪問的是一個(gè)目錄,比如:http://www.xxx.com/hello/test/ ,那么\$uri/ 就是 /hello/test/.
例如上面這條規(guī)則:請(qǐng)求 http://localhost:8080/test/2.png
這個(gè)地址時(shí),try_files 會(huì)判斷他是文件,還是一個(gè)目錄,結(jié)果發(fā)現(xiàn)他是文件,與第一個(gè)參數(shù) $uri 變量匹配。然后去到網(wǎng)站目錄下去查找 test/2.png 文件是否存在,如果存在直接讀取返回。如果不存在則跳轉(zhuǎn)到第三個(gè)參數(shù),即返回網(wǎng)站根目錄 + /a/1.png 文件(/usr/local/var/www/a/1.png)。
更多用法:
4. rewrite
rewrite 功能就是實(shí)現(xiàn) url 重寫以及重定向。
語(yǔ)法rewrite regex replacement [flag];
rewrite只能放在server{}
,location{}
,if{}
中,并且只能對(duì)域名后邊的除去傳遞的參數(shù)外的字符串起作用,例如 http://www.xxx.com/a/b/index.html?param=1&u=str
只對(duì) /a/b/index.html 重寫。
rewrite 的執(zhí)行順序:
執(zhí)行server塊的rewrite指令
執(zhí)行l(wèi)ocation匹配
執(zhí)行選定的location中的rewrite指令
flag 標(biāo)志位:
last : 相當(dāng)于apache的[l]標(biāo)記,表示完成rewrite
break : 停止執(zhí)行當(dāng)前虛擬主機(jī)的后續(xù) rewrite 指令集
redirect : 返回302臨時(shí)重定向,地址欄會(huì)顯示跳轉(zhuǎn)后的地址
permanent : 返回301永久重定向,地址欄會(huì)顯示跳轉(zhuǎn)后的地址
location /home/ { rewrite ^/home/test/ http://www.baidu.com; }
上面這個(gè)規(guī)則:訪問 http://localhost:8080/home/test/
這個(gè)地址時(shí),頁(yè)面會(huì)重定向到 http://www.baidu.com。
一些小tips:
如何 nginx 重定向 url,但不改變?yōu)g覽器中 url 的顯示?
proxy_pass 可指定反向代理
更多用法:
1. 如何在命令行用 vscode 打開文件
cd /usr/local/bin/ ln -s "/applications/visual studio code.app/contents/macos/electron" vscode
其中 /applications/visual studio code.app/contents/macos/electron
為 vscode 的可執(zhí)行文件,ln -s 命令就是將其通過(guò)軟連接的方式放到 /usr/local/bin/ 目錄下。這樣就可以在命令行的其他地方通過(guò) vscode 命令打開文件了。
感謝各位的閱讀,以上就是“Nginx安裝與配置規(guī)則是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Nginx安裝與配置規(guī)則是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。