国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂

億恩科技有限公司旗下門戶資訊平臺!
服務(wù)器租用 4元建網(wǎng)站

如何將Nginx 配置為Web服務(wù)器嗎

閱讀之前,建議先閱讀初識 Nginx。 之后,我們來了解一下 Nginx 配置。

閱讀之前,建議先閱讀初識 Nginx。 之后,我們來了解一下 Nginx 配置。

抽象來說,將 Ngin閱讀之前,建議先閱讀初識 Nginx。 之后,我們來了解一下 Nginx 配置。x 配置為 Web 服務(wù)器就是定義處理哪些 URLS 和如何處理這些URLS 對應(yīng)的請求。具體來說,就是定義一些虛擬服務(wù)器(Virtual Servers),控制具有特定 IP 和域名的請求。

更具體的來說, Nginx 通過定義一系列 locations 來控制對 URIS 的選擇。每一個 location 定義了對映射到自己的請求的處理場景:返回一個文件或者代理請求,或者根據(jù)不同的錯誤代碼返回不同的錯誤頁面。另外,根據(jù) URI 的不同,請求也可以被重定向到其它 server 或者 location 。

如何將Nginx 配置為Web服務(wù)器嗎

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

listen:

Nginx 配置文件至少包含一個 server 命令 ,用來定義虛擬服務(wù)器。當(dāng)請求到來時, Nginx 會首先選擇一個虛擬服務(wù)器來處理該請求。

虛擬服務(wù)器定義在 http 上下文中的 server 中:


  1. http { server { # Server configuration 

注意: http 中可以定義多個 server

server 配置塊使用 listen 命令監(jiān)聽本機(jī) IP 和端口號(包括 Unix domain socket and path),支持 IPv4、IPv6,IPv6地址需要用方括號括起來:

server { listen 127.0.0.1:8080; # IPv4地址,8080端口

# listen [2001:3CA1:10F:1A:121B:0:0:10]:80; # IPv6地址,80端口

# listen [::]:80; # 聽本機(jī)的所有IPv4與IPv6地址,80端口

# The rest of server configuration}

上述配置,如果不寫端口號,默認(rèn)使用80端口,如果不寫 IP ,則監(jiān)聽本機(jī)所有 IP。

server_name:

如果多個 server 的 listen IP 和端口號一模一樣, Nginx 通過請求頭中的 Host

你真的了解如何將 Nginx 配置為Web服務(wù)器嗎

與 server_name 定義的主機(jī)名進(jìn)行比較,來選擇合適的虛擬服務(wù)器處理請求:


  1. server { listen 80; 
  2.  
  3. server_name lufficc.com www.lufficc.com; 
  4.  
  5. ... 
  6.  

server_name 的參數(shù)可以為:

  • 完整的主機(jī)名,如:api.lufficc.com 。
  • 含有通配符(含有 *),如:*.lufficc.com 或 api.* 。
  • 正則表達(dá)式,以 ~ 開頭。

通配符只能在開頭或結(jié)尾,而且只能與一個 . 相鄰。www.*.example.org 和 w*.example.org均無效。 但是,可以使用正則表達(dá)式匹配這些名稱,例如 ~^www..+.example.org$ 和~^w.*.example.org$ 。 而且 * 可以匹配多個部分。 名稱 * .example.org 不僅匹配www.example.org,還匹配www.sub.example.org。

對于正則表達(dá)式:Nginx 使用的正則表達(dá)式與 Perl 編程語言(PCRE)使用的正則表達(dá)式兼容。 要使用正則表達(dá)式,且必須以 ~ 開頭。

命名的正則表達(dá)式可以捕獲變量,然后使用:


  1. server { server_name ~^(www.)?(?<domain>.+)$; location / { root /sites/$domain;  
  2.  

小括號 () 之間匹配的內(nèi)容,也可以在后面通過 $1 來引用,$2 表示的是前面第二個 () 里的內(nèi)容。因此上述內(nèi)容也可寫為:


  1. server { server_name ~^(www.)?(.+)$; location / { root /sites/$2; 

一個 server_name 示例:


  1. server { listen 80; 
  2. server_name api.lufficc.com *.lufficc.com; 
  3. ... 

同樣,如果多個名稱匹配 Host 頭部, Nginx 采用下列順序選擇:

  • 完整的主機(jī)名,如 api.lufficc.com。
  • 最長的,且以 * 開頭的通配名,如:*.lufficc.com。
  • 最長的,且以 * 結(jié)尾的通配名,如:api.* 。
  • 第一個匹配的正則表達(dá)式。(按照配置文件中的順序)

即優(yōu)先級:api.lufficc.com > *.lufficc.com > api.* > 正則。

如果 Host 頭部不匹配任何一個 server_name ,Nginx 將請求路由到默認(rèn)虛擬服務(wù)器。默認(rèn)虛擬服務(wù)器是指:nginx.conf 文件中第一個 server 或者 顯式用 default_server 聲明:


  1. server { server_name ~^(www.)?(.+)$; location / { root /sites/$2; 

配置 location

URI 與 location 參數(shù)的匹配

當(dāng)選擇好 server 之后,Nginx 會根據(jù) URIs 選擇合適的 location 來決定代理請求或者返回文件。

location 指令接受兩種類型的參數(shù):

  • 前綴字符串(路徑名稱)
  • 正則表達(dá)式

對于前綴字符串參數(shù), URIs 必須嚴(yán)格的以它開頭。例如對于 /some/path/ 參數(shù),可以匹配/some/path/document.html ,但是不匹配 /my-site/some/path,因?yàn)?/my-site/some/path 不以/some/path/ 開頭。


  1. location /some/path/ {  
  2. ...  

對于正則表達(dá)式,以 ~ 開頭表示大小寫敏感,以 ~* 開頭表示大小寫不敏感。注意路徑中的 . 要寫成 . 。例如一個匹配以 .html 或者 .htm 結(jié)尾的 URI 的 location:


  1. location ~ .html? { 
  2. ... 

正則表達(dá)式的優(yōu)先級大于前綴字符串。如果找到匹配的前綴字符串,仍繼續(xù)搜索正則表達(dá)式,但如果前綴字符串以 ^~ 開頭,則不再檢查正則表達(dá)式。

具體的搜索匹配流程如下:

  • 將 URI 與所有的前綴字符串進(jìn)行比較。
  • = 修飾符表明 URI 必須與前綴字符串相等(不是開始,而是相等),如果找到,則搜索停止。
  • 如果找到的最長前綴匹配字符串以 ^~ 開頭,則不再搜索正則表達(dá)式是否匹配。
  • 存儲匹配的最長前綴字符串。
  • 測試對比 URI 與正則表達(dá)式。
  • 找到第一個匹配的正則表達(dá)式后停止。
  • 如果沒有正則表達(dá)式匹配,使用 4 存儲的前綴字符串對應(yīng)的 location。

= 修飾符擁有最高的優(yōu)先級。如網(wǎng)站首頁訪問頻繁,我們可以專門定義一個 location 來減少搜索匹配次數(shù)(因?yàn)樗阉鞯?= 修飾的匹配的 location 將停止搜索),提高速度:


  1. location = / { 
  2. ... 

靜態(tài)文件和代理

location 也定義了如何處理匹配的請求:返回靜態(tài)文件 或者 交給代理服務(wù)器處理。下面的例子中,第一個 location 返回 /data 目錄中的靜態(tài)文件,第二個 location 則將請求傳遞給https://lufficc.com 域名的服務(wù)器處理:


  1. server { location /images/ { root /data; 
  2. } location / { proxy_pass https://lufficc.com; 

root 指令定義了靜態(tài)文件的根目錄,并且和 URI 拼接形成最終的本地文件路徑。如請求/images/example.png,則拼接后返回本地服務(wù)器文件 /data/images/example.png 。

proxy_pass 指令將請求傳遞到 URL 指向的代理服務(wù)器。讓后將來自代理服務(wù)器的響應(yīng)轉(zhuǎn)發(fā)給客戶端。 在上面的示例中,所有不以 /images / 開頭的 URI 的請求都將傳遞給代理服務(wù)器處理。

比如我把 proxy_pass 設(shè)置為 https://www.baidu.com/,那么訪問 http://search.lufficc.com/ 將得到百度首頁一樣的響應(yīng)(頁面)(感興趣的童鞋可以自己試一試搜索功能,和百度沒差別呢):


  1. server{ 
  2.  
  3. listen 80; 
  4.  
  5. server_name search.lufficc.com; 
  6.  
  7. location / { 
  8.  
  9. proxy_pass https://www.baidu.com; 
  10.  
  11.  

使用變量(Variables)

你可以使用變量來使 Nginx 在不同的請求下采用不同的處理方式。變量是在運(yùn)行時計算的,用作指令的參數(shù)。 變量由 $ 開頭的符號表示。 變量基于 Nginx 的狀態(tài)定義信息,例如當(dāng)前處理的請求的屬性。

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

一些常用的變量如下:

 server{  一個簡單的應(yīng)用就是從 http 重定向到 https 時帶上路徑信息:


  1. ... return 301 https://lufficc.com$request_uri;  
  2. ...  

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

如果你的網(wǎng)站上的一些資源永久移除了,最快最簡潔的方法就是使用 return 指令直接返回:


  1. location /wrong/url { return 404;  

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


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

return 指令可以包含在 location 和 server 上下文中:


  1. server{ 
  2. location / { return 404; 

或者:


  1. server{ 
  2. ... return 404; 
  3. location / { 
  4. ...  
  5.  

錯誤處理

error_page 命令可以配置特定錯誤碼的錯誤頁面,或者重定向到其他的頁面。下面的示例將在 404 錯誤發(fā)生時返回 /404.html 頁面。

error_page 404 /404.html;

error_page 命令定義了如何處理錯誤,因此不會直接返回,而 return 確實(shí)會立即返回。當(dāng)代理服務(wù)器或者 Nginx 處理時產(chǎn)生相應(yīng)的錯誤的代碼,均會返回相應(yīng)的錯誤頁面。

在下面的示例中,當(dāng) Nginx 找不到頁面時,它將使用代碼301替換代碼404,并將客戶端重定向到http://example.com/new/path.html 。 此配置很有用,比如當(dāng)客戶端仍嘗試用舊的 URI 訪問頁面時,301代碼通知瀏覽器頁面已永久移除,并且需要自動替換為返回的新地址。


  1. location /old/path.html { error_page 404 =301 http:/example.com/new/path.html; 
  2.  

重寫 URIs

rewrite 指令可以多次修改請求的 URI。rewrite 的第一個參數(shù)是 URI需要匹配的正則表達(dá)式,第二個參數(shù)是將要替換的 URI。第三個參數(shù)可選,指示是否繼續(xù)可以重寫或者返回重定向代碼(301或302)。例如:


  1. location /users/ { rewrite ^/users/(.*)$ /show?user=$1 break; 
  2.  

您可以在 server 和 location 上下文中包括多個 rewrite 指令。 Nginx 按照它們發(fā)生的順序一個一個地執(zhí)行指令。 當(dāng)選擇 server 時,server 中的 rewrite 指令將執(zhí)行一次。

在 Nginx 處理一組 rewrite 指令之后,它根據(jù)新的 URI 選擇 location 。 如果所選 location 仍舊包含 rewrite 指令,它們將依次執(zhí)行。 如果 URI 匹配所有,則在處理完所有定義的 rewrite 指令后,搜索新的 location 。

以下示例將 rewrite 指令與 return 指令結(jié)合使用:


  1. server { 
  2.  
  3. ... 
  4.  
  5. rewrite ^(/download/.*)/media/(.*)..*$ $1/mp3/$2.mp3 last
  6.  
  7. rewrite ^(/download/.*)/audio/(.*)..*$ $1/mp3/$2.ra lastreturn 403; 
  8.  
  9. ... 
  10.  

諸如 /download/some/media/file 的 URI 被改為 /download/some/mp3/file.mp3 。 由于 last 標(biāo)志,后續(xù)指令(第二個 rewrite 指令和 return 指令)被跳過,但 Nginx 繼續(xù)以更改后的 URI 處理請求。 類似地,諸如 /download/some/audio/file 的 URI 被替換為/download/some/mp3/file.ra。 如果 URI 不匹配 rewrite 指令,Nginx 將403 錯誤代碼返回給客戶端。

last 與 break的區(qū)別是:

  • last : 在當(dāng)前 server 或 location 上下文中停止執(zhí)行 rewrite 指令,但是 Nginx 繼續(xù)搜索與重寫的URI匹配的 location,并應(yīng)用新 location 中的任何 rewrite 指令(這意味著 URI 可能再次改變)。
  • break :停止當(dāng)前上下文中 rewrite 指令的處理,并取消搜索與新 URI 匹配的 location。 不會執(zhí)行新 location中的 rewrite 指令。

附錄

常用正則

  • . : 匹配除換行符以外的任意字符
  • ? : 重復(fù)0次或1次
  • + : 重復(fù)1次或更多次
  • *: 重復(fù)0次或更多次
  • d :匹配數(shù)字
  • ^ : 匹配字符串的開始
  • $ : 匹配字符串的介紹
  • {n} : 重復(fù)n次
  • {n,} : 重復(fù)n次或更多次
  • [c] : 匹配單個字符c
  • [a-z]: 匹配a-z小寫字母的任意一個

全局變量

  • $args : #這個變量等于請求行中的參數(shù),同$query_string
  • $content_length : 請求頭中的Content-length字段。
  • $content_type : 請求頭中的Content-Type字段。
  • $document_root : 當(dāng)前請求在root指令中指定的值。
  • $host : 請求主機(jī)頭字段,否則為服務(wù)器名稱。
  • $http_user_agent : 客戶端agent信息
  • $http_cookie : 客戶端cookie信息
  • $limit_rate : 這個變量可以限制連接速率。
  • $request_method : 客戶端請求的動作,通常為GET或POST。
  • $remote_addr : 客戶端的IP地址。
  • $remote_port : 客戶端的端口。
  • $remote_user : 已經(jīng)經(jīng)過Auth Basic Module驗(yàn)證的用戶名。
  • $request_filename : 當(dāng)前請求的文件路徑,由root或alias指令與URI請求生成。
  • $scheme : HTTP方法(如http,https)。
  • $server_protocol : 請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。
  • $server_addr : 服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個值。
  • $server_name : 服務(wù)器名稱。
  • $server_port : 請求到達(dá)服務(wù)器的端口號。
  • $request_uri : 包含請求參數(shù)的原始URI,不包含主機(jī)名,如:/foo/bar.php?arg=baz。
  • $uri : 不帶請求參數(shù)的當(dāng)前URI,$uri不包含主機(jī)名,如/foo/bar.html。
  • $document_uri : 與$uri相同。

例如請求:http://localhost:88/test1/test2/test.php


  1. $host:localhost 
  2. $server_port:88 
  3. $request_uri:http://localhost:88/test1/test2/test.php 
  4. $document_uri:/test1/test2/test.php 
  5. $document_root:/var/www/html 
  6. $request_filename:/var/www/html/test1/test2/test.php 
河南億恩科技股份有限公司(www.czbl888.cn)始創(chuàng)于2000年,專注服務(wù)器托管租用,是國家工信部認(rèn)定的綜合電信服務(wù)運(yùn)營商。億恩為近五十萬的用戶提供服務(wù)器托管、服務(wù)器租用、機(jī)柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶不斷的獲得更大的收益。
服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-55621053
網(wǎng)絡(luò)版權(quán)侵權(quán)舉報電話:0371-60135995
服務(wù)熱線:0371-60135900

標(biāo)簽 Web服務(wù)器
0
0
分享到:責(zé)任編輯:會會

相關(guān)推介

共有:0條評論網(wǎng)友評論:

驗(yàn)證碼 看不清換一張 換一張

親,還沒評論呢!速度搶沙發(fā)吧!
国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂
av在线免费观看国产| 久久福利一区二区| 黄色三级中文字幕| 国产成人强伦免费视频网站| 日韩肉感妇bbwbbwbbw| 欧美成人免费高清视频| 午夜精品久久久久久久无码 | 日本在线观看a| 国产女大学生av| 国产玉足脚交久久欧美| 亚洲熟妇无码av在线播放| 一本色道久久88亚洲精品综合| 一区二区三区四区久久| av磁力番号网| 日本精品免费视频| 免费看日b视频| 日韩欧美不卡在线| 日韩免费一级视频| 国产精品wwwww| 一级特黄性色生活片| 一本岛在线视频| 亚洲欧美天堂在线| 一级黄色片播放| 99er在线视频| 九九九九免费视频| av无码精品一区二区三区| www.99av.com| 中文 日韩 欧美| 狠狠噜天天噜日日噜| 黄色国产一级视频| 久久九九国产视频| 992kp免费看片| 欧美久久在线观看| 日日碰狠狠丁香久燥| www.久久av.com| 成人小视频在线观看免费| 九色在线视频观看| 美女网站视频黄色| 久久最新免费视频| 日本日本19xxxⅹhd乱影响| 激情视频综合网| 公共露出暴露狂另类av| 无码中文字幕色专区| 97公开免费视频| 波多野结衣激情| 免费无码不卡视频在线观看| 最近中文字幕一区二区| 米仓穗香在线观看| 东京热加勒比无码少妇| 午夜一区二区视频| 国产3p露脸普通话对白| 国产免费又粗又猛又爽| 轻点好疼好大好爽视频| 免费看黄色一级大片| 国产麻豆电影在线观看| 能在线观看的av| 男女啪啪的视频| av片中文字幕| 永久免费看av| 久久99999| 成人性生活视频免费看| 99日在线视频| 99福利在线观看| 狠狠干视频网站| 五月天激情视频在线观看| 妞干网在线播放| 国产永久免费网站| 日韩av资源在线| 欧美性猛交内射兽交老熟妇| 亚洲欧美自拍另类日韩| 日韩精品一区在线视频| 成年人网站av| 中文字幕第80页| 乱人伦xxxx国语对白| 欧美日韩在线免费观看视频| 日本女优爱爱视频| 丰满少妇久久久| 干日本少妇视频| 亚洲欧美国产中文| 女人另类性混交zo| 日韩人妻无码精品久久久不卡| 五月天丁香花婷婷| 激情综合网俺也去| 日韩avxxx| 国产 日韩 欧美在线| 最新中文字幕久久| 日韩在线不卡一区| 97公开免费视频| 熟女少妇在线视频播放| 青草全福视在线| 亚洲欧美一二三| 超碰人人草人人| 黄色在线视频网| 超碰影院在线观看| 看av免费毛片手机播放| 欧美一区二区视频在线播放| 天堂av手机在线| www.夜夜爽| 亚洲无吗一区二区三区| 精品www久久久久奶水| 人妻精品无码一区二区三区 | 大陆极品少妇内射aaaaa| 91精品一区二区三区四区| 精品国产乱码久久久久久1区二区| 777视频在线| 男女无套免费视频网站动漫| 麻豆av免费在线| 色诱视频在线观看| 日韩在线视频在线观看| 国产精品12345| 国产精品网站免费| 国产精品久久久久7777| 日韩 欧美 视频| 日韩精品视频在线观看视频| 大荫蒂性生交片| 国产3p露脸普通话对白| 欧美久久久久久久久久久久久| 欧美又粗又长又爽做受| 国产精品自拍合集| 国产真人做爰毛片视频直播| a天堂资源在线观看| heyzo亚洲| 日韩视频免费在线播放| 日本999视频| 中文字幕亚洲乱码| 波多野结衣在线免费观看| 亚洲成人手机在线观看| 在线观看成人免费| 99er在线视频| 中文字幕日本最新乱码视频| 免费午夜视频在线观看| 青青草精品视频在线观看| 欧美美女一级片| gogogo免费高清日本写真| 少妇久久久久久被弄到高潮| 国产av国片精品| 91香蕉视频污版| 一级片免费在线观看视频| 黄色影视在线观看| www.亚洲视频.com| 国产成人亚洲精品无码h在线| 免费看国产黄色片| 中文字幕1234区| 隔壁人妻偷人bd中字| 岳毛多又紧做起爽| 亚洲欧美偷拍另类| 成人av在线播放观看| 免费观看日韩毛片| www.超碰97.com| 日本国产中文字幕| 国产福利一区视频| 精品日韩在线播放| 午夜肉伦伦影院| www.51色.com| 日韩视频在线视频| 久久撸在线视频| 欧美视频在线第一页| 久久国产色av免费观看| 日韩欧美中文视频| 免费无码不卡视频在线观看| 污色网站在线观看| 欧美黄色免费网址| 日韩一级理论片| 大胆欧美熟妇xx| 日本美女高潮视频| 精品久久久无码人妻字幂| 成人免费视频久久| 毛片在线视频观看| 污片在线免费看| 国产原创中文在线观看| 伊人国产精品视频| 免费在线激情视频| 一二三在线视频| 欧美少妇性生活视频| 日本老太婆做爰视频| 一区二区三区视频在线观看免费| 白白操在线视频| 日日干夜夜操s8| 久在线观看视频| 视频一区二区视频| 我看黄色一级片| 国产a级片网站| 欧美精品色视频| 九热视频在线观看| 妞干网在线视频观看| 一级一片免费播放| 性刺激的欧美三级视频| 久久精品国产sm调教网站演员| 樱花草www在线| www.涩涩涩| 97xxxxx| 黄色三级中文字幕| 天天色天天干天天色| www.色就是色| 日本精品免费在线观看| 免费看日本黄色| 国风产精品一区二区| 天堂av手机在线| 免费看涩涩视频| 冲田杏梨av在线|