日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php的server和location,3、Nginx关于server块和location块的配置

發布時間:2025/4/5 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php的server和location,3、Nginx关于server块和location块的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面第2篇文章中列出了全局段、events段、http段的一些指令的意義和用法,這篇文章將介紹server段和location段的相關指令。

server段配置

listen:

listen指令有三種配置方法:

1、listen address[:port] [ default_server ]? [ ssl ];

2、listen port [ default_server ]? [ ssl ];

3、listen unix:path [ default_server ]? [ ssl ];

使用示例:

listen *:80 | *:8000; ? ###監聽所有80和8000端口

listen 192.168.1.10;###監聽具體IP的所有端口上的連接

listen 8000;###監聽具體端口上的所有IP連接,等同于listen ?*:8000;

server_name:

語法:server_name ?name...;

設置虛擬主機名稱。可以設置多個name,例如:

server_name ?myserver.com www.myserver.com;

name中可以使用通配符*,但是通配符只能用在由三段字符串組成的名稱的首段或尾段,或者由兩段字符串組成的名稱的尾段。例如:

server_name ? *.myserver.com ?www.myserver.*;

name中還可以使用正則表達式,并使用波浪號“~”作為正則表達式字符串的開始標記。例如:

server_name ? ~^www\d+\.myserver\.com$;

表示以匹配www開頭,后面緊跟一個或者多個數字,后面是myserver,并且以com結尾的name

由于server_name指令支持通配符和正則表達式兩種配置名稱的方式,因此在包含有多個虛擬主機的配置文件中,可能會出現一個名稱被多個虛擬主機的server_name匹配成功,那么來自這個名稱的請求到底被哪個虛擬主機處理呢?Nginx會根據以下優先級來選擇虛擬主機響應用戶端的請求:

1、準確匹配server_name

2、通配符開開始時匹配server_name成功

3、通配符在結尾時匹配server_name成功

4、正則表達式匹配server_name成功

5、如果server_name被同一優先級的匹配方式匹配到,則誰先匹配到誰負責響應。

root:

語法:root ?path;

指定根目錄路徑。

示例:

location ?/data/ {

root ?/wwwroot/html;

}

當location接收到“/data/index.html”的訪問請求時,會在/wwwroot/html/data/目錄下找到index.html來響應用戶請求。

index:

設置默認首頁,一般有兩個作用,一是,用戶在發出請求訪問網站時,請求地址可以不寫首頁名稱,二是,可以對一個請求,根據其請求的內容而設置不用的首頁,該指令的語法結構為:

index ?file ...;

示例:server?{

listen?80;

server_name?test;

error_log?/etc/nginx/conf.d/error.log;

root?/wwwroot/html;

index?c.html;

location?/t/?{

root?/wwwroot/html;

index?a.html;

}

}

error_page:

設置網站的錯誤頁面,語法為:

error_page ?code ... [=[response]]uri;

code:要處理的HTTP錯誤代碼

response:將code指定的錯誤代碼轉換為新的錯誤代碼

uri:錯誤頁面的路徑或者網站地址,這個uri是相對于root設置的根路徑而言的。

示例:

error_page ?404 ?/404.html;

基于IP的訪問控制:

allow? address | CIDR | unix |all;

設置允許訪問的IP范圍

deny ?address | CIDR | unix:| all;

設置拒絕訪問的IP范圍

示例:location?/t/?{

root?/data/www/vhost2/;

allow?172.16.100.120;

deny?all;

}

僅允許172.16.100.120這個IP地址訪問

基于賬戶密碼訪問Nginx服務器

auth_basic string | off;

是否啟用密碼認證

auth_basic_user_file? file;

指定密碼認證的配置文件路徑,只有在auth_basic啟用時有效。

示例:創建一個server.conf的配置文件,并設置基于賬號密碼訪問該server中配置的虛擬主機

1、先創建server.conf的配置文件

#cd /etc/nginx/conf.d/

#vim server.confserver?{

listen?8888;

server_name?test;

root?/wwwroot/html;

location?/t/?{

auth_basic?"Admin?Area";

auth_basic_user_file??/etc/nginx/.ngxpasswd;

}

}

2、創建賬號密碼文件,需要安裝httpd

#htpasswd -c -m /etc/nginx/.ngxpasswd tom

創建密碼文件,路徑為/etc/nginx/.ngxpasswd ?并創建一個tom的賬號,命令會提示輸入密碼

#htpasswd? -m /etc/nginx/.ngxpasswd jerry

再創建一個名為Jerry的賬號,創建第二個賬號時不用-c選項

3、測試訪問網站

stub_status:

通過制定的uri輸出stub_status,只能定義在server和location中。

示例:server?{

listen?8889;

server_name?test;

root?/wwwroot/html;

location?/t/?{

stub_status;

}

}

當前活動客戶端連接數包括waiting狀態的客戶端

accepts:已接受的客戶端連接總數量

handled : 已處理的客戶端連接數量

requests: 客戶端總請求數量

reading:當前nginx正在讀取客戶端請求報文的連接數量數量

writing:正在響應客戶端請求報文的連接數量

waiting:等待其發出請求的空閑連接數量

location段配置:

注意,location段只能在server段中配置,前面的文章有講過。

其配置結構為:server?{

...

location?[PATTERN]?{

...

}

location?[PATTERN]?{

...

}

}

location的語法結構為:

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

其中uri變量是帶匹配的請求字符串,可以是不含正則表達式的字符串,如/myserver.php等。也可以是含有正則表達式的字符串,如\.php$(表示以.php結尾的URL)。不含正則表達式的uri稱為標準uri,含有正則表達式的uri稱為正則uri。

方括號中的都是可選項,用來改變請求字符串與uri的匹配方式。在介紹這幾個標識的含義之前,先說說Nginx服務器是如何在sever塊中所有location塊的uri和請求的字符串匹配的:

在不添加此選項之前,Nginx服務器首先在server塊的多個location中搜索是否有標準uri和請求的字符串匹配,如果有多個匹配,就記錄匹配度最高的一個。然后在用location塊中的正則uri和請求的字符串匹配,當第一個正則uri匹配成功時,結束搜索,并使用這個location塊處理處理此請求。如果正則匹配全部失敗,則使用剛才記錄的匹配度最高的location塊來處理請求

“=”:用于標準uri前,要求請求字符串與uri嚴格匹配,如果匹配成功則立即停止向下所有并立即處理此請求。

“~”:用于表示uri包含正則表達式,并且區分大小寫

“~*”:用于表示uri包含正則表達式,并且不區分大小寫

“^~”:用于標準uri前,要求Nginx服務器找到標識uri和請求字符串匹配度最高的location后,立即使用此location處理請求,而不再使用location塊中的正則uri和請求字符串做匹配。

匹配優先級:精確匹配“=” > “^~” > “~”或者~*> 不帶符號的URL

location段的配置指令:

root:

指定根目錄,語法為:root ?path;

該指令也還能用于http段和server段中。

示例:

location ?/data/ {

root ?/locationtest1;

}

當location塊接收到“/data/index.htm”的請求時,將在/locationtest1/data/目錄下找到index.htm來響應請求。

alias:

定義路徑別名。語法:alias ?path;

注意,這里的path是修改后的根路徑,而不是相對于root 的路徑

示例:server?{

listen?80;

server_name?test;

error_log?/etc/nginx/conf.d/error.log;

root?/wwwroot/html;

index?c.html;

location?/abc/?{

alias?/wwwroot/html/data/zeng/;

}

}

當用戶請求test/abc/index.html時,Nginx將從/wwwroot/html/data/zeng/目錄中找到index.html來響應請求。

index:

設置默認主頁,和在server段中的用法一樣,不再作說明。

總結

以上是生活随笔為你收集整理的php的server和location,3、Nginx关于server块和location块的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。