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

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

如何將Nginx 配置為Web服務器嗎

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

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

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

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

如何將Nginx 配置為Web服務器嗎

設置虛擬服務器

listen:

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

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


  1. http { server { # Server configuration 

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

server 配置塊使用 listen 命令監聽本機 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; # 聽本機的所有IPv4與IPv6地址,80端口

# The rest of server configuration}

上述配置,如果不寫端口號,默認使用80端口,如果不寫 IP ,則監聽本機所有 IP。

server_name:

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

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

與 server_name 定義的主機名進行比較,來選擇合適的虛擬服務器處理請求:


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

server_name 的參數可以為:

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

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

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

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


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

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


  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 采用下列順序選擇:

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

即優先級:api.lufficc.com > *.lufficc.com > api.* > 正則。

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


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

配置 location

URI 與 location 參數的匹配

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

location 指令接受兩種類型的參數:

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

對于前綴字符串參數, URIs 必須嚴格的以它開頭。例如對于 /some/path/ 參數,可以匹配/some/path/document.html ,但是不匹配 /my-site/some/path,因為 /my-site/some/path 不以/some/path/ 開頭。


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

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


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

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

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

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

= 修飾符擁有最高的優先級。如網站首頁訪問頻繁,我們可以專門定義一個 location 來減少搜索匹配次數(因為搜索到 = 修飾的匹配的 location 將停止搜索),提高速度:


  1. location = / { 
  2. ... 

靜態文件和代理

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


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

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

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

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


  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 在不同的請求下采用不同的處理方式。變量是在運行時計算的,用作指令的參數。 變量由 $ 開頭的符號表示。 變量基于 Nginx 的狀態定義信息,例如當前處理的請求的屬性。

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

一些常用的變量如下:

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


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

返回特定狀態碼

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


  1. location /wrong/url { return 404;  

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


  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 錯誤發生時返回 /404.html 頁面。

error_page 404 /404.html;

error_page 命令定義了如何處理錯誤,因此不會直接返回,而 return 確實會立即返回。當代理服務器或者 Nginx 處理時產生相應的錯誤的代碼,均會返回相應的錯誤頁面。

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


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

重寫 URIs

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


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

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

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

以下示例將 rewrite 指令與 return 指令結合使用:


  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 標志,后續指令(第二個 rewrite 指令和 return 指令)被跳過,但 Nginx 繼續以更改后的 URI 處理請求。 類似地,諸如 /download/some/audio/file 的 URI 被替換為/download/some/mp3/file.ra。 如果 URI 不匹配 rewrite 指令,Nginx 將403 錯誤代碼返回給客戶端。

last 與 break的區別是:

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

附錄

常用正則

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

全局變量

  • $args : #這個變量等于請求行中的參數,同$query_string
  • $content_length : 請求頭中的Content-length字段。
  • $content_type : 請求頭中的Content-Type字段。
  • $document_root : 當前請求在root指令中指定的值。
  • $host : 請求主機頭字段,否則為服務器名稱。
  • $http_user_agent : 客戶端agent信息
  • $http_cookie : 客戶端cookie信息
  • $limit_rate : 這個變量可以限制連接速率。
  • $request_method : 客戶端請求的動作,通常為GET或POST。
  • $remote_addr : 客戶端的IP地址。
  • $remote_port : 客戶端的端口。
  • $remote_user : 已經經過Auth Basic Module驗證的用戶名。
  • $request_filename : 當前請求的文件路徑,由root或alias指令與URI請求生成。
  • $scheme : HTTP方法(如http,https)。
  • $server_protocol : 請求使用的協議,通常是HTTP/1.0或HTTP/1.1。
  • $server_addr : 服務器地址,在完成一次系統調用后可以確定這個值。
  • $server_name : 服務器名稱。
  • $server_port : 請求到達服務器的端口號。
  • $request_uri : 包含請求參數的原始URI,不包含主機名,如:/foo/bar.php?arg=baz。
  • $uri : 不帶請求參數的當前URI,$uri不包含主機名,如/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 
河南億恩科技股份有限公司(m.czbl888.cn)始創于2000年,專注服務器托管租用,是國家工信部認定的綜合電信服務運營商。億恩為近五十萬的用戶提供服務器托管、服務器租用、機柜租用、云服務器、網站建設、網站托管等網絡基礎服務,另有網總管、名片俠網絡推廣服務,使得客戶不斷的獲得更大的收益。
服務器/云主機 24小時售后服務電話:0371-60135900
虛擬主機/智能建站 24小時售后服務電話:0371-55621053
網絡版權侵權舉報電話:0371-60135995
服務熱線:0371-60135900

標簽 Web服務器
0
0
分享到:責任編輯:會會

相關推介

共有:0條評論網友評論:

驗證碼 看不清換一張 換一張

親,還沒評論呢!速度搶沙發吧!
国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂
天天干天天曰天天操| 婷婷激情四射五月天| 一本久道综合色婷婷五月| 玖玖精品在线视频| 九九九久久久久久久| 黄大色黄女片18第一次| 中文字幕无码不卡免费视频| 国产a级片网站| av在线免费观看国产| 精品国产一区二区三区在线| 日韩va在线观看| 午夜xxxxx| 免费不卡av网站| 国产系列第一页| 大地资源第二页在线观看高清版| 蜜臀一区二区三区精品免费视频 | 欧美精品久久久久久久久25p| 欧美牲交a欧美牲交aⅴ免费真| 国产免费黄色小视频| 可以看毛片的网址| 男人天堂a在线| 蜜桃传媒一区二区三区| 亚洲午夜精品久久久久久人妖| 国产亚洲欧美在线视频| 人妻熟女一二三区夜夜爱| 欧美一级黄色影院| 四季av一区二区| 九热视频在线观看| 日本中文字幕观看| 国产成人三级视频| 免费一级特黄毛片| 久久精品99国产| 鲁一鲁一鲁一鲁一av| 天天综合成人网| 奇米777四色影视在线看| 国产av人人夜夜澡人人爽麻豆| 9久久9毛片又大又硬又粗| 欧美性猛交久久久乱大交小说| 在线观看国产中文字幕| 咪咪色在线视频| 精品丰满人妻无套内射| aⅴ在线免费观看| 在线观看免费av网址| 性鲍视频在线观看| 日日摸日日碰夜夜爽无码| 一本色道无码道dvd在线观看| 三级a三级三级三级a十八发禁止| aaaaaaaa毛片| 三上悠亚久久精品| 亚洲性图一区二区| 久久久久久久久久伊人| 日韩免费高清在线| 99精品一级欧美片免费播放| 国产91在线免费| 久久久久xxxx| 久草热视频在线观看| 亚洲天堂国产视频| 成人性生活视频免费看| av污在线观看| 日韩精品一区二区在线视频 | 91大神免费观看| 久久久亚洲精品无码| 自拍偷拍一区二区三区四区| 热久久最新地址| 中文字幕第21页| 一级黄色片播放| 欧美性猛交久久久乱大交小说| 潘金莲一级淫片aaaaa免费看| 国产主播在线看| 50度灰在线观看| 一区二区xxx| 精品成在人线av无码免费看| 男操女免费网站| 国产69精品久久久久999小说| 在线看的黄色网址| 国产a级片网站| 亚洲制服中文字幕| 国产亚洲天堂网| 人妻无码一区二区三区四区| 五月天婷婷激情视频| 日韩精品视频在线观看视频| 一级做a免费视频| 91九色在线观看视频| 日本黄xxxxxxxxx100| 污版视频在线观看| 久久综合九色综合88i| 成人在线观看www| 污污动漫在线观看| 黄色片视频在线播放| av在线观看地址| 午夜久久久久久久久久久| www.精品在线| 国产成人精品视频免费看| 天天在线免费视频| www.亚洲自拍| 亚洲一区在线不卡| 免费日韩视频在线观看| www.射射射| 欧美激情亚洲天堂| 中文字幕综合在线观看| 自拍偷拍一区二区三区四区| 国产激情在线观看视频| 日韩国产欧美亚洲| aa视频在线播放| 久久综合久久网| 成人免费a级片| 老司机午夜免费福利视频| 色中文字幕在线观看| 99九九精品视频| 交换做爰国语对白| 伊人免费视频二| 91av视频免费观看| 亚洲精品综合在线观看| 国模私拍视频在线观看| 天天干天天操天天做| 日韩一区二区三区久久| mm131国产精品| 天天干天天av| 九九九九九九九九| av噜噜在线观看| 男女视频在线观看网站| 伊人国产精品视频| 欧美精品 - 色网| 一级黄色片在线免费观看| 亚洲一二区在线观看| 国产毛片久久久久久| 一级黄色录像免费看| mm131午夜| 人人妻人人澡人人爽欧美一区| 久久久久福利视频| 免费人成在线观看视频播放| 九九爱精品视频| 免费观看精品视频| 国产又大又黄又粗的视频| 久久久久久久久久一区二区| 欧美一级免费在线| 国产片侵犯亲女视频播放| 欧美一级欧美一级| 欧美一级在线看| 日本熟妇人妻中出| www.超碰97.com| 国产日韩第一页| 久久视频这里有精品| 韩国一区二区av| 欧美日韩一区二区三区69堂| 欧美一级免费在线| 97免费视频观看| 午夜肉伦伦影院| 手机av在线免费| 精品日韩在线播放| 亚洲熟妇av日韩熟妇在线| 国产精品无码av无码| 中文字幕第一页在线视频| www.激情网| 无码内射中文字幕岛国片| 福利视频999| 久久久久久久9| 91av在线免费播放| 蜜桃福利午夜精品一区| 成人免费看片视频在线观看| 日韩av高清在线看片| 浓精h攵女乱爱av| 亚洲精品少妇一区二区| 日韩久久一级片| 成年人免费观看的视频| 奇米精品一区二区三区| 老司机午夜性大片| 国产va亚洲va在线va| 小泽玛利亚视频在线观看| 久久福利一区二区| youjizzxxxx18| 成人午夜免费剧场| www日韩在线观看| 久久观看最新视频| 狠狠热免费视频| 免费观看亚洲视频| 男女无套免费视频网站动漫| 在线观看污视频| 88av.com| 日本一本中文字幕| 亚洲小视频网站| 草草久久久无码国产专区| 色偷偷中文字幕| 无码日韩人妻精品久久蜜桃| 日本大胆人体视频| 亚州精品一二三区| 欧美 丝袜 自拍 制服 另类| 无套内谢丰满少妇中文字幕| 成人一级片网站| 国产又粗又长又爽视频| 一区二区三区 日韩| 午夜免费福利小电影| 一级片免费在线观看视频| 精品国产成人av在线免| 国产精品国三级国产av| 爽爽爽在线观看| av无码精品一区二区三区| 国产a级片网站| 色一情一乱一乱一区91| 91精品999|