File tree Expand file tree Collapse file tree 1 file changed +8
-4
lines changed
Expand file tree Collapse file tree 1 file changed +8
-4
lines changed Original file line number Diff line number Diff line change 11# nginx 如何处理请求
22
3+ - [ 基于名称的虚拟服务器] ( #基于名称的虚拟服务器 )
4+ - [ 如何使用未定义的server名称来阻止处理请求] ( #如何使用未定义的server名称来阻止处理请求 )
5+ - [ 一个简单的PHP站点配置] ( #一个简单的PHP站点配置 )
6+
37## 基于名称的虚拟服务器
48nginx 首先决定哪个 ` server ` 应该处理请求,让我们从一个简单的配置开始,三个虚拟服务器都监听了 ` *:80 ` 端口:
59
@@ -23,7 +27,7 @@ server {
2327}
2428```
2529
26- 在此配置中,nginx 仅检验请求的 header 域中的 ` Host ` ,以确定请求应该被路由到哪一个 ` server ` 。如果其值与任何的 ` server ` 名称不匹配,或者该请求根本不包含此 header 域,nginx 会将请求路由到该端口的默认 ` server ` 中。在上面的配置中,默认 ` server ` 是第一个(这是 nginx 的标准默认行为)。你也可以在 ` listen ` 指令中使用 ` default_server ` 参数,明确地设置默认的 ` server ` 。
30+ 在此配置中,nginx 仅检验请求的 header 域中的 ` Host ` ,以确定请求应该被路由到哪一个 ` server ` 。如果其值与任何的 ` server ` 名称不匹配,或者该请求根本不包含此 header 域,nginx 会将请求路由到该端口的默认 ` server ` 中。在上面的配置中,默认 ` server ` 是第一个(这是 nginx 的标准默认行为)。你也可以在 [ listen] ( http://nginx.org/en/docs/http/ngx_http_core_module.html#listen ) 指令中使用 ` default_server ` 参数,明确地设置默认的 ` server ` 。
2731
2832``` nginx
2933server {
@@ -37,7 +41,7 @@ server {
3741
3842请注意,` default_server ` 是 ` listen port ` 的属性,而不是 ` server_name ` 的。之后会有更多关于这方面的内容。
3943
40- ## 如何使用未定义的 server 名称来阻止处理请求
44+ ## 如何使用未定义的server名称来阻止处理请求
4145如果不允许没有 “Host” header 字段的请求,可以定义一个丢弃请求的 server:
4246
4347``` nginx
@@ -75,7 +79,7 @@ server {
7579}
7680```
7781
78- 此配置中,nginx 首先根据 ` server ` 块的 ` listen ` 指令检验请求的 IP 和端口。之后,根据与 IP 和端口相匹配的 ` server ` 块的 ` server_name ` 项对请求的“Host” header 域进行检验。如果找不到服务器的名称(server_name),请求将由 ` default_server ` 处理。例如,在 ` 192.168.1.1:80 ` 上收到的对 ` www.example.com ` 的请求将由 ` 192.168.1.1:80 ` 端口的 ` default_server ` (即第一个 server)处理,因为没有 ` www.example.com ` 在此端口上定义。
82+ 此配置中,nginx 首先根据 [ server] ( http://nginx.org/en/docs/http/ngx_http_core_module.html#server ) 块的 ` listen ` 指令检验请求的 IP 和端口。之后,根据与 IP 和端口相匹配的 ` server ` 块的 [ server_name] ( http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name ) 项对请求的“Host” header 域进行检验。如果找不到服务器的名称(server_name),请求将由 ` default_server ` 处理。例如,在 ` 192.168.1.1:80 ` 上收到的对 ` www.example.com ` 的请求将由 ` 192.168.1.1:80 ` 端口的 ` default_server ` (即第一个 server)处理,因为没有 ` www.example.com ` 在此端口上定义。
7983
8084如上所述,` default_server ` 是 ` listen port ` 的属性,可以为不同的端口定义不同的 ` default_server ` :
8185
@@ -99,7 +103,7 @@ server {
99103}
100104```
101105
102- ## 一个简单的 PHP 站点配置
106+ ## 一个简单的PHP站点配置
103107现在让我们来看看 nginx 是如何选择一个 ` location ` 来处理典型的简单 PHP 站点的请求:
104108
105109``` nginx
You can’t perform that action at this time.
0 commit comments