自学内容网 自学内容网

Nginx 虚拟主机和反向代理 (同一个ip多个二级域名配置不同的前端服务)

把多个二级域名映射到不同的文件目录,例如

  1. bbs.abc.com,映射到 html/bbs

  2. 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可以指定一个域名、多个域名,甚至是使用通配符的域名模式。

作用

  1. 域名匹配:Nginx接收到HTTP请求后,会根据请求的Host头部来匹配server_name,以确定使用哪个server块来处理请求。
  2. 虚拟主机:通过配置不同的server_name,Nginx可以在同一台服务器上托管多个网站(虚拟主机)。每个网站有自己的server块和server_name设置。
  3. 默认服务器:在多个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)!