nginx虚拟主机的别名配置

1    虚拟主机别名介绍及配置

    所谓虚拟主机别名,就是为了虚拟主机设置除了主域名以外的一个或多个域名名字,这样能实现用户访问的多个域名对应同一个虚拟主机网站的功能。

    以www.etiantian.org域名的虚拟主机为例,为其增加一个别名etiantian.org,使得访问

[root@web01 bbs]# curl -I 51cto.com
HTTP/1.1 301 Moved Permanently
Date: Sun, 20 Aug 2017 05:47:23 GMT
Content-Type: text/html
Connection: keep-alive
Location: http://www.51cto.com/
Load-Balancing: web03
Load-Balancing: web03
Load-Balancing: web03
[root@web01 bbs]# curl -I baidu.com
HTTP/1.1 200 OK
Date: Sun, 20 Aug 2017 05:48:07 GMT
Server: Apache
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-47cf7e6ee8400"
Accept-Ranges: bytes
Content-Length: 81
Cache-Control: max-age=86400
Expires: Mon, 21 Aug 2017 05:48:07 GMT
Connection: Keep-Alive
Content-Type: text/html

2    新增一个etiantian.org的别名,只需要在www.conf的配置文件中server_name后面空格添加一个etiantian.org域名即可

[root@web01 extra]# pwd
/application/nginx/conf/extra
[root@web01 extra]# vim www.conf 
    server {
        listen       80;
        server_name  www.etiantian.org etiantian.org;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
    }

    然后平滑重启

[root@web01 extra]# ../../sbin/nginx -s reload

    在管理机m01上面验证

    管理机新增一条etiantian.org的dns解析编辑/etc/hosts文件,新增如下解析

172.16.1.8      web01 www.etiantian.org bbs.etiantian.org blog.etiantian.org etiantian.org

    在管理机上面curl以下etiantian.org即可,说明新增虚拟主机别名成功。

[root@m01 ~]# curl etiantian.org   
www
[root@m01 ~]# curl www.etiantian.org
www


虚拟主机别名生产使用场景案例

    1)多数企业网站都希望访问www.etiantian.org和etiantian.org所浏览的是同一个页面,若有这类需求,就可以让etiantian.org以别名的方式出现,这时两个域名都要解析到服务器的IP地址。

    2)在老男孩的生产环境中曾经还利用过别名来监控集群下面的RS的URL是否正常。如:

server_name  www1.tiantian.org www2.etiantian.org;

        可以在监控服务器里配置hosts来监控RS www1.etiantian.org、www2.etiantian.org等地址是否正常,进而判断每一台机器的www.etiantian.org是否正常。如不适用别名则很难通过域名URL的方式检测判断节点下面的机器是否正常(因为这些集群节点的域名是同一个)