Nginx 虚拟主机和反向代理 (同一个ip多个二级域名配置不同的前端服务)
把多个二级域名映射到不同的文件目录,例如
-
bbs.abc.com,映射到 html/bbs
-
blog.abc.com 映射到 html/blog
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.abc.com;
location / {
root html/www;
index index.html index.htm;
}
}
server {
listen 80;
server_name bbs.abc.com;
location / {
root html/bbs;
index index.html index.htm;
}
}
server {
listen 80;
server_name blog.abc.com;
location / {
root html/blog;
index index.html index.htm;
}
}
}
在Nginx的配置中,
server_name
指令用于定义当前server
块处理的域名(或域名的集合)。这个指令让Nginx知道,当接收到对应域名的HTTP请求时,应该使用哪个server
块来处理这些请求。server_name
可以指定一个域名、多个域名,甚至是使用通配符的域名模式。作用
- 域名匹配:Nginx接收到HTTP请求后,会根据请求的
Host
头部来匹配server_name
,以确定使用哪个server
块来处理请求。- 虚拟主机:通过配置不同的
server_name
,Nginx可以在同一台服务器上托管多个网站(虚拟主机)。每个网站有自己的server
块和server_name
设置。- 默认服务器:在多个
server
块中,可以通过特定的server_name
设置(如_
或者没有设置server_name
)来定义一个默认的服务器,用于处理未明确匹配到任何server_name
的请求。
第一个
server
块处理对www.example.com
的请求,而第二个server
块处理对blog.example.com
的请求。这样,即使这两个域名指向同一IP地址,Nginx也能根据请求的域名来分别处理它们。通配符和正则表达式
- 通配符:
server_name
可以使用通配符,如*.example.com
匹配任何以.example.com
结尾的域名。- 正则表达式:使用波浪号(
~
)开头,可以为server_name
指定一个正则表达式,提供更灵活的匹配规则。通过这种方式,
server_name
为Nginx提供了强大的请求分发和网站托管能力。
原文地址:https://blog.csdn.net/gu2022_3_5_21_23/article/details/140243920
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!