Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 63.6MB ·虚拟内存 1299.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
我们可以指定多个虚拟服务器,每个服务器由一个服务器{}上下文描述。
server { listen *:80 default_server; server_name aizws.co; return 200 "Hello from aizws.co"; } server { listen *:80; server_name nikita.co; return 200 "Hello from nikita.co"; } server { listen *:81; server_name deep.co; return 200 "Hello from deep.co"; }
上面的例子会给 Nginx 一些关于如何处理传入请求的见解。首先,Nginx 将检查 listen 指令以测试哪个虚拟服务器正在侦听给定的 IP: 端口组合。然后针对存储服务器域名的 Host 标头测试 server_name 指令 中的值。
Nginx 按以下顺序选择虚拟服务器:
从上面的例子,输出将是:
Request to nikita.co:80 => "Hello from nikita.co" Request to www.nikita.co:80 => "Hello from aizws.co" Request to deep.co:80 => "Hello from aizws.co" Request to deep.co:81 => "Hello from nikita.co" Request to nikita.co:81 => "Hello from deep.co"
server_name 指令用于接受多个值;它还用于处理通配符匹配和正则表达式。
server_name aizws.co www.aizws.co; # exact match server_name *.aizws.co; # wildcard matching server_name aizws.*; # wildcard matching server_name ~^[0-9]*\.aizws\.co$; # regexp matching
如果有歧义,那么Nginx使用如下顺序:
Nginx 将存储三个哈希表: 确切名称、以星号开头的通配符和以星号结尾的通配符。如果结果不在上面声明的表中,则将依次测试正则表达式。
注意:
server_name .aizws.co;
是:
的缩写
server_name aizws.co www.aizws.co *.aizws.co;
只有一个区别: .aizws.co 存储在第二个表中,这意味着它比显式声明要慢一些。
在大多数情况下,我们会看到 listen 指令接受 IP: 端口值。
listen 127.0.0.1:80; listen 127.0.0.1; # port :80 is used by default listen *:81; listen 81; # all ips are used by default listen [::]:80; # IPv6 addresses listen [::1]; # IPv6 addresses
但是,也可以指定 UNIX 域的套接字:
listen unix:/var/run/Nginx.sock;
即使我们可以使用主机名:
listen localhost:80; listen netguru.co:80;
如果指令不存在,则使用*:80。
在本节中,我们将讨论如何配置 Nginx Plus 和 Nginx 开源以服务静态内容。根目录和索引文件root 指令用于定义将用于搜索文件的根目录。为了获得请求文件的路径,Nginx 将请求的 URI 附加到由 ro ...