欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx的簡(jiǎn)單轉(zhuǎn)發(fā)請(qǐng)求之server和location配置詳解

 更新時(shí)間:2022年05月11日 15:31:04   作者:劉振寧的博客  
這篇文章主要介紹了nginx的簡(jiǎn)單轉(zhuǎn)發(fā)請(qǐng)求之server和location配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

簡(jiǎn)單梳理一下nginx中關(guān)于server 和location的配置.

比如URL:www.mask_dev2.com:9999/login/

server管的前半部分,即:www.mask_dev2.com:9999

location管的是后半部分,即:/login/

一個(gè)nginx可以配置多個(gè)server。

每個(gè)server可以配置多個(gè)location。

URL的前半部分控制選擇哪一個(gè)server,后半部分控制選擇哪一個(gè)location,最終決定往哪里去請(qǐng)求.

server的配置

server {
 listen 9999;
 server_name www.mask_dev2.cn;
 location / {
  default_type text/html;
  content_by_lua '
   ngx.say("<p>first</p>")
  ';
 }
}

server {
 listen 9999;
 server_name www.mask_dev2.*;
 location / {
  default_type text/html;
  content_by_lua '
   ngx.say("<p>second</p>")
  ';    
 }
}

server {
 listen 9998;
 server_name _;
 location / {
  default_type text/html;
  content_by_lua '
   ngx.say("<p>third</p>")
  ';

 }
}

首先,請(qǐng)求nginx的地址,肯定是請(qǐng)求的nginx所在的服務(wù)器,也就是說ip是固定的。

也就是說,無所謂server_name是什么,都是指的當(dāng)前服務(wù)器.

那么當(dāng)前服務(wù)器是怎樣對(duì)應(yīng)多個(gè)域名呢,這個(gè)只需要在相應(yīng)的dns服務(wù)器中進(jìn)行添加,就行了,比如暫時(shí)把本機(jī)當(dāng)成dns服務(wù)器,修改hosts

127.0.0.1 localhost
127.0.0.1 www.mask_dev2.cn
127.0.0.1 www.mask_dev2.com

server匹配順序

server_name與host匹配優(yōu)先級(jí)如下:

1、完全匹配
2、通配符在前的,如*.test.com
3、在后的,如www.test.*
4、正則匹配,如~^\.www\.test\.com$

如果都不匹配

1、優(yōu)先選擇listen配置項(xiàng)后有default或default_server的
2、找到匹配listen端口的第一個(gè)server塊

location配置

找到server之后,再去找具體的location

server {
 listen 9998;
 server_name _;
 location = / { 
  #規(guī)則A 
 } 
 location = /login { 
  #規(guī)則B 
 } 
 location ^~ /static/ { 
  #規(guī)則C 
 } 
 location ~ \.(gif|jpg|png|js|css)$ { 
  #規(guī)則D 
 } 
 location ~* \.png$ { 
  #規(guī)則E 
 } 
 location !~ \.xhtml$ { 
  #規(guī)則F 
 } 
 location !~* \.xhtml$ { 
  #規(guī)則G 
 } 
 location / { 
  #規(guī)則H 
 } 

語法規(guī)則:

location [=||*|^~] uri { … }

  1. = 開頭表示精確匹配
  2. ^~ 開頭表示uri以某個(gè)常規(guī)字符串開頭,理解為匹配 url路徑即可。nginx不對(duì)url做編碼,因此請(qǐng)求為/static/20%/aa,可以被規(guī)則^~ static /aa匹配到(注意是空格)。
  3. ~ 開頭表示區(qū)分大小寫的正則匹配
  4. ~*  開頭表示不區(qū)分大小寫的正則匹配
  5. !和!*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配 的正則
  6. / 通用匹配,任何請(qǐng)求都會(huì)匹配到。
  7. 多個(gè)location配置的情況下匹配順序?yàn)椋▍⒖假Y料而來,還未實(shí)際驗(yàn)證,試試就知道了,不必拘泥,僅供參考):

首先匹配 =,其次匹配^~, 其次是按文件中順序的正則匹配,最后是交給 / 通用匹配。當(dāng)有匹配成功時(shí)候,停止匹配,按當(dāng)前匹配規(guī)則處理請(qǐng)求。

但是一般沒有這么復(fù)雜,有3點(diǎn)。

  1. 默認(rèn)請(qǐng)求。
  2. 頁面請(qǐng)求.
  3. 后臺(tái)邏輯請(qǐng)求.
#直接匹配網(wǎng)站根,通過域名訪問網(wǎng)站首頁比較頻繁,使用這個(gè)會(huì)加速處理,官網(wǎng)如是說。 
#這里是直接轉(zhuǎn)發(fā)給后端應(yīng)用服務(wù)器了,也可以是一個(gè)靜態(tài)首頁 
# 第一個(gè)必選規(guī)則 
location = / { 
  proxy_pass http://tomcat:8080/index 
} 

# 第二個(gè)必選規(guī)則是處理靜態(tài)文件請(qǐng)求,這是nginx作為http服務(wù)器的強(qiáng)項(xiàng) 
# 有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用 
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { 
  root /webroot/res/; 
} 

#第三個(gè)規(guī)則就是通用規(guī)則,用來轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求到后端應(yīng)用服務(wù)器 
#非靜態(tài)文件請(qǐng)求就默認(rèn)是動(dòng)態(tài)請(qǐng)求,自己根據(jù)實(shí)際把握 
#畢竟目前的一些框架的流行,帶.php,.jsp后綴的情況很少了 
location / { 
  proxy_pass http://127.0.0.1:8080/ 
} 

總結(jié)

比如,現(xiàn)在同時(shí)啟動(dòng) 前臺(tái)系統(tǒng),和后臺(tái)系統(tǒng),就可以用兩個(gè)server(可以配置host為api,admin,或者直接修改端口也可以),每個(gè)server中3個(gè)location來確定具體頁面的請(qǐng)求.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx中配置sse的方法示例

    nginx中配置sse的方法示例

    本文主要介紹了nginx中配置sse的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 詳解Nginx如何根據(jù)swagger關(guān)鍵字屏蔽頁面

    詳解Nginx如何根據(jù)swagger關(guān)鍵字屏蔽頁面

    這篇文章主要為大家詳細(xì)介紹了Nginx 如何根據(jù)swagger關(guān)鍵字屏蔽頁面的實(shí)現(xiàn)方案,文中有詳細(xì)的解決方案,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • nginx編譯安裝及常用參數(shù)詳解

    nginx編譯安裝及常用參數(shù)詳解

    這篇文章主要介紹了nginx編譯安裝及常用參數(shù)詳解,一種是基于ansible role實(shí)現(xiàn)編譯安裝nginx以及編譯安裝參數(shù)詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • 淺談Nginx請(qǐng)求限制和訪問控制的實(shí)現(xiàn)

    淺談Nginx請(qǐng)求限制和訪問控制的實(shí)現(xiàn)

    這篇文章主要介紹了淺談Nginx請(qǐng)求限制和訪問控制的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 在Nginx服務(wù)器上配置Google反向代理的基本方法

    在Nginx服務(wù)器上配置Google反向代理的基本方法

    這篇文章主要介紹了在Nginx服務(wù)器上配置Google反向代理的基本方法,文中使用到了SSL來加密反向代理,需要的朋友可以參考下
    2015-12-12
  • nginx服務(wù)器實(shí)現(xiàn)上傳下載文件的實(shí)例代碼

    nginx服務(wù)器實(shí)現(xiàn)上傳下載文件的實(shí)例代碼

    這篇文章主要介紹了nginx服務(wù)器實(shí)現(xiàn)上傳下載文件的實(shí)例代碼,本文通過代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Nginx 代理與負(fù)載均衡詳解

    Nginx 代理與負(fù)載均衡詳解

    這篇文章主要介紹了Nginx 代理與負(fù)載均衡詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Nginx網(wǎng)站服務(wù)過程詳解

    Nginx網(wǎng)站服務(wù)過程詳解

    Nginx是一款高性能、異步非阻塞工作模式、輕量級(jí)Web服務(wù)軟件,這篇文章主要介紹了Nginx網(wǎng)站服務(wù)的相關(guān)知識(shí),需要的朋友可以參考下
    2023-06-06
  • 詳解Nginx中的重定向功能

    詳解Nginx中的重定向功能

    這篇文章主要介紹了詳解Nginx中的重定向功能,Nginx是一款基于事務(wù)的無阻塞的高性能服務(wù)器,需要的朋友可以參考下
    2015-07-07
  • nginx+uwsgi啟動(dòng)Django項(xiàng)目的詳細(xì)步驟

    nginx+uwsgi啟動(dòng)Django項(xiàng)目的詳細(xì)步驟

    nginx+uwsgi+django是我們常用的django部署方式。這篇文章主要介紹了nginx+uwsgi啟動(dòng)Django項(xiàng)目的詳細(xì)步驟,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10

最新評(píng)論