溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nginx安裝與配置規(guī)則是什么

發(fā)布時(shí)間:2022-04-26 17:07:02 來(lái)源:億速云 閱讀:247 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Nginx安裝與配置規(guī)則是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Nginx安裝與配置規(guī)則是什么”吧!

一、nginx 安裝與運(yùn)行 (mac os環(huán)境)

1. 安裝 nginx

可通過(guò) homebrew 可直接安裝:

$brew install nginx

安裝好后,默認(rèn)首頁(yè)的文件在 /usr/local/var/www 文件夾下

默認(rèn)的配置文件地址在 /usr/local/etc/nginx/nginx.conf

Nginx安裝與配置規(guī)則是什么

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 )

Nginx安裝與配置規(guī)則是什么

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

二、nginx 規(guī)則配置

更多配置可查看

1. location

Nginx安裝與配置規(guī)則是什么

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 可指定反向代理

更多用法:

三、一些命令行的配置(mac os)

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)注!

向AI問一下細(xì)節(jié)

免責(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)容。

AI