亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Nginx如何配置Web服務(wù)器的示例代碼

 更新時間:2020年04月16日 08:37:15   作者:波波說運維  
這篇文章主要介紹了詳解 Nginx如何配置Web服務(wù)器的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

概述

今天主要分享怎么將NGINX配置作為Web服務(wù)器,并包括以下部分:

  • 設(shè)置虛擬服務(wù)器
  • 配置位置
  • 使用變量
  • 返回特定狀態(tài)碼
  • 重寫HTTP響應(yīng)

在高層次上,將NGINX配置作為Web服務(wù)器有一些問題需要了解,定義它處理哪些URL以及如何處理這些URL上的資源的HTTP請求。 在較低層次上,配置定義了一組控制對特定域或IP地址的請求的處理的虛擬服務(wù)器。

用于HTTP流量的每個虛擬服務(wù)器定義了稱為位置的特殊配置實例,它們控制特定URI集合的處理。 每個位置定義了自己的映射到此位置的請求發(fā)生的情況。 NGINX可以完全控制這個過程。 每個位置都可以代理請求或返回一個文件。 此外,可以修改URI,以便將請求重定向到另一個位置或虛擬服務(wù)器。 此外,可以返回特定的錯誤代碼,也可以配置特定的頁面以對應(yīng)于每個錯誤代碼。

1. 設(shè)置虛擬服務(wù)器

NGINX配置文件必須至少包含一個服務(wù)器指令來定義虛擬服務(wù)器。 當NGINX處理請求時,它首先選擇提供請求的虛擬服務(wù)器。

虛擬服務(wù)器由http上下文中的服務(wù)器指令定義,例如:

http { 
 server { 
 # Server configuration 
 } 
} 

可以將多個server指令添加到http上下文中以定義多個虛擬服務(wù)器。

server配置塊通常包括一個listen指令,用于指定服務(wù)器偵聽請求的IP地址和端口(或Unix域套接字和路徑)。IPv4和IPv6地址均被接受; 將方括號(。

下面的示例顯示了監(jiān)聽IP地址127.0.0.1和端口8080的服務(wù)器的配置:

server { 
 listen 127.0.0.1:8080; 
 # The rest of server configuration 
} 

如果省略端口,則使用標準端口。 同樣地,如果省略一個地址,服務(wù)器將偵聽所有地址。 如果沒有包含listen指令,則“標準”端口為80/tcp,“default”端口為8000/tcp,具體取決于超級用戶權(quán)限。

如果有多個服務(wù)器與請求的IP地址和端口相匹配,則NGINX將根據(jù)服務(wù)器塊中的server_name指令測試請求的主機頭域。 server_name的參數(shù)可以是完整(精確)名稱,通配符或正則表達式。 通配符是一個字符串,其開頭,結(jié)尾或兩者都包含星號(*); 星號匹配任何字符序列。 NGINX將Perl語法用于正則表達式; 在它們之前使用波浪號()。 此示例說明了一個確切的名稱。

server { 
 listen 80; 
 server_name example.org www.example.org; 
 ... 
} 

2. 配置位置

NGINX可以根據(jù)請求URI向不同的代理發(fā)送流量或提供不同的文件。 這些塊是使用放置在server指令中的location指令來定義的。

例如,您可以定義三個location塊,以指示虛擬服務(wù)器向一個代理服務(wù)器發(fā)送一些請求,將其他請求發(fā)送到不同的代理服務(wù)器,并通過從本地文件系統(tǒng)傳遞文件來提供其余請求。

NGINX測試根據(jù)所有l(wèi)ocation指令的參數(shù)請求URI,并應(yīng)用匹配location中定義的指令。 在每個location塊內(nèi),通??赡?除了一些例外)放置更多的location指令以進一步細化特定組請求的處理。

注意:在本教程文章中,單詞location是指單個location上下文。

location指令有兩種類型的參數(shù):前綴字符串(路徑名)和正則表達式。 對于要匹配前綴字符串的請求URI,必須以前綴字符串開頭。

具有pathname參數(shù)的以下示例位置匹配以/some/path/開頭的請求URI,例如/some/path/document.html,它不匹配/my-site/some/path,因為/some/path不在該URI的開頭出現(xiàn)。

location /some/path/ { 
 ... 
} 

正則表達式之前是區(qū)分大小寫匹配的波形符號(~),或者不區(qū)分大小寫匹配的波形符號(~*)。 以下示例將包含字符串.html或.html的URI與任何位置相匹配。

location ~ \.html? { 
 ... 
} 

要找到最符合URI的位置,NGINX首先將URI與前綴字符串的位置進行比較。然后用正則表達式搜索位置。

location上下文可以包含定義如何解析請求的指令 - 提供靜態(tài)文件或?qū)⒄埱髠鬟f給代理的服務(wù)器。 在以下示例中,匹配第一個location上下文的請求將從/data/images目錄中提供文件,并將匹配第二個位置的請求傳遞給承載 www.example.com 域內(nèi)容的代理服務(wù)器。

server { 
 location /images/ { 
 root /data; 
 } 
 location / { 
 proxy_pass http://www.example.com; 
 } 
} 

root指令指定要在其中搜索要提供的靜態(tài)文件的文件系統(tǒng)路徑。 與該位置相關(guān)聯(lián)的請求URI將附加到路徑,以獲取要提供的靜態(tài)文件的全名。 在上面的示例中,要響應(yīng)/images/logo.png的請求,NGINX提供服務(wù)器本地實際對應(yīng)文件是:/data/images/logo.png。

proxy_pass指令將請求傳遞給使用配置的URL訪問代理服務(wù)器。然后將代理服務(wù)器的響應(yīng)傳回客戶端。在上面的示例中,所有不以/images/開頭的URI的請求都將被傳遞給代理的服務(wù)器(也就是:www.example.com)。

3. 使用變量

可以使用配置文件中的變量,使NGINX進程的請求根據(jù)定義的情況而有所不同。 變量是在運行時計算的命名值,用作指令的參數(shù)。 一個變量由它的名字開頭的$(美元)符號表示。 變量根據(jù)NGINX的狀態(tài)定義信息,例如正在處理的請求的屬性。

有許多預(yù)定義的變量,如核心HTTP變量,您可以使用set,map和geo指令定義自定義變量。 大多數(shù)變量在運行時計算的,并包含與特定請求相關(guān)的信息。 例如,$remote_addr包含客戶端IP地址,$uri保存當前的URI值。

4. 返回特定狀態(tài)碼

一些網(wǎng)站URI需要立即返回具有特定錯誤或重定向代碼的響應(yīng),例如當頁面被暫時移動或永久移動時。 最簡單的方法是使用return指令。 例如返回未找到的404狀態(tài)碼:

location /wrong/url { 
 return 404; 
} 

返回的第一個參數(shù)是響應(yīng)代碼??蛇x的第二個參數(shù)可以是重定向的URL(代碼301,302,303和307)或在響應(yīng)體中返回文本。 例如:

location /permanently/moved/url { 
 return 301 http://www.example.com/moved/here; 
} 

返回指令可以包含在 location 和 server 上下文中。

5. 重寫HTTP響應(yīng)

有時需要重寫或更改HTTP響應(yīng)中的內(nèi)容,將一個字符串替換為另一個字符串。 可以使用sub_filter指令來定義要應(yīng)用的重寫。 該指令支持變量和替代鏈,使更復(fù)雜的更改成為可能。

例如,可以更改引用除代理服務(wù)器之外的絕對鏈接:

location / { 
 sub_filter /blog/ /blog-staging/; 
 sub_filter_once off; 
} 

另一個示例將方法從http://更改為http://,并從請求頭域替換本地主機地址到主機名。 sub_filter_once指令告訴NGINX在一個位置(location)內(nèi)連續(xù)應(yīng)用sub_filter偽指令:

location / { 
 sub_filter 'href="http://$host/'; 
 sub_filter 'img src="http://127.0.0.1:8080/' 'img src="http://$host/'; 
 sub_filter_once on; 
} 

請注意,如果發(fā)生另一個sub_filter匹配,則使用sub_filter修改的響應(yīng)部分將不再被替換。

到此這篇關(guān)于詳解Nginx如何配置Web服務(wù)器的示例代碼的文章就介紹到這了,更多相關(guān)Nginx 配置Web服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx反向代理proxy_set_header

    nginx反向代理proxy_set_header

    這篇文章主要介紹了nginx反向代理proxy_set_header,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳解nginx中的日志配置

    詳解nginx中的日志配置

    日志對于統(tǒng)計排錯來說非常有利的,本文為大家總結(jié)了nginx日志相關(guān)的配置如access_log、log_format、open_log_file_cache等內(nèi)容,感興趣的小伙伴可以了解下
    2023-08-08
  • nginx日志過大問題解決

    nginx日志過大問題解決

    nginx默認的日志在logs/access.log,并且是一直累加寫入,時間長了就會非常大,本文主要介紹了nginx日志過大問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • nginx前綴匹配的實現(xiàn)

    nginx前綴匹配的實現(xiàn)

    在nginx的配置文件中,很容易的看到location的模塊,本文主要介紹了nginx前綴匹配的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 一篇文章快速掌握Nginx部署前端項目(Nginx安裝配置及部署都非常詳細!)

    一篇文章快速掌握Nginx部署前端項目(Nginx安裝配置及部署都非常詳細!)

    這篇文章主要給大家介紹了關(guān)于如何通過一篇文章快速掌握Nginx部署前端項目的相關(guān)資料,文中從Nginx安裝配置及部署都非常詳細哦,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-01-01
  • 本地HTTPS環(huán)境搭建的完整步驟記錄

    本地HTTPS環(huán)境搭建的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于本地HTTPS環(huán)境搭建的相關(guān)資料,文中通過示例代碼將實現(xiàn)的步驟一步步介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • nginx配置多個vue項目

    nginx配置多個vue項目

    這篇文章主要介紹了nginx配置多個vue項目的方法以及流程介紹,對此有需要的朋友參考下。
    2018-04-04
  • 詳解Nginx 虛擬主機配置的三種方式(基于端口)

    詳解Nginx 虛擬主機配置的三種方式(基于端口)

    Nginx配置虛擬主機支持3種方式主要有基于IP的虛擬主機配置,基于端口的虛擬主機配置,基于域名的虛擬主機配置。本篇文章主要介紹了基于端口的實現(xiàn),感興趣的小伙伴們可以參考一下
    2018-10-10
  • nginx之內(nèi)存池的實現(xiàn)

    nginx之內(nèi)存池的實現(xiàn)

    本文主要介紹了nginx之內(nèi)存池的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 解決國內(nèi)k8s的ingress-nginx鏡像無法正常pull拉取問題

    解決國內(nèi)k8s的ingress-nginx鏡像無法正常pull拉取問題

    本文主要介紹了解決國內(nèi)k8s的ingress-nginx鏡像無法正常pull拉取問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03

最新評論