DNS服务配置

1.安装bind服务

[root@localhost sbin]# yum install bind -y
...........//省略安装过程
[root@localhost sbin]#

2.查看网卡信息(IP地址)

[root@localhost named]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.52.133  netmask 255.255.255.0  broadcast 192.168.52.255
        inet6 fe80::3e1d:31ba:f66a:6f80  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:1c:3f  txqueuelen 1000  (Ethernet)
        RX packets 384057  bytes 558603083 (532.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 182891  bytes 11237471 (10.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.修改主配置文件

[root@localhost sbin]# vim /etc/named.conf

options {
        listen-on port 53 { any; };    //127.0.0.1改为any
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };      //localhost改为any

[root@localhost sbin]#

4.修改区域配置文件

[root@localhost sbin]# vim /etc/named.rfc1912.zones

zone "abc.com" IN {        //添加两个区域信息
        type master;
        file "abc.com.zone";
        allow-update { none; };
};

zone "xyz.com" IN {
        type master;
        file "xyz.com.zone";
        allow-update { none; };
};

[root@localhost sbin]#

5.修改区域数据配置文件

[root@localhost sbin]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost abc.com.zone    //复制模板并命名
[root@localhost named]# vim abc.com.zone 

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.52.133   //添加解析地址

[root@localhost named]# cp -p abc.com.zone xyz.com.zone    //复制abc域名的区域配置文件命名为xyz域名
[root@localhost named]# ls
abc.com.zone  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves  xyz.com.zone
[root@localhost named]# 
[root@localhost named]# systemctl start named   //开启dns服务
[root@localhost named]# systemctl stop firewalld.service    //关闭防火墙
[root@localhost named]# setenforce 0    //关闭增强性安全功能
[root@localhost named]# 

基于域名的虚拟主机配置

1.分别给两个站点创建首页文件

[root@localhost named]# mkdir -p /var/www/html/abc    //创建abc站点
[root@localhost named]# mkdir -p /var/www/html/xyz    //创建xyz站点
[root@localhost named]# cd /var/www/html/
[root@localhost html]# ls
abc  xyz
[root@localhost html]# echo "this is abc web" > abc/index.html   //创建首页文件
[root@localhost html]# echo "this is xyz web" > xyz/index.html   //创建首页文件
[root@localhost html]#

2.修改nginx服务配置文件

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf

    server {
        listen       80;             //监听端口
        server_name  www.abc.com;      //域名
        charset utf-8;      //字符集,utf-8支持中文字符
        access_log  logs/www.abc.com.access.log;     //访问日志
        location / {
            root   /var/www/html/abc;    //站点
            index  index.html index.htm;     //支持的首页类型
        }
        error_page   500 502 503 504  /50x.html;    //访问错误文件
        location = /50x.html {
            root   html;     //站点
        }
    }

    server {
        listen       80;    //监听端口
        server_name  www.xyz.com;     //域名
        charset utf-8;      //字符集,utf-8支持中文字符
        access_log  logs/www.xyz.com.access.log;    //访问日志
        location / { 
            root   /var/www/html/xyz;    //站点
            index  index.html index.htm;     //支持的首页类型
        }
        error_page   500 502 503 504  /50x.html;    //访问错误文件
        location = /50x.html {
            root   html;     //站点
        }
    } 

[root@localhost html]#

3.检查测试配置文件,并重启服务

[root@localhost html]# nginx -t   //检查配置文件语法格式
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost html]# service nginx restart      //重启服务
[root@localhost html]# 

4.开启一台win10作为测试机,设置dns地址

5.测试能否进行域名解析(成功)

6.用测试机浏览器访问两个域名

基于端口的虚拟主机配置

1.修改nginx服务的配置文件

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf

    server {
        listen       192.168.52.133:80;     //监听端口
        server_name  www.abc.com;
        charset utf-8;
        access_log  logs/www.abc.com.access.log;    //访问日志
        location / {
            root   /var/www/html/abc;     //站点
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen       192.168.52.133:8080;    //监听端口
        server_name  www.abc.com;
        charset utf-8;
        access_log  logs/www.abc8080.com.access.log;     //访问日志
        location / {
            root   /var/www/html/abc8080;     //站点
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

2.测试配置文件

[root@localhost html]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost html]# 

3.创建8080端口站点目录与首页文件

[root@localhost html]# mkdir abc8080   //创建站点目录
[root@localhost html]# echo "this is abc8080 web" > abc8080/index.html     //创建首页文件
[root@localhost html]# service nginx restart    //重启nginx服务
[root@localhost html]#

4.用测试机浏览器访问相同域名的不同端口

基于IP的虚拟主机配置

1.给虚拟机添加一块网卡

2.查看网卡信息(IP地址)

[root@localhost html]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.52.133  netmask 255.255.255.0  broadcast 192.168.52.255
        inet6 fe80::3e1d:31ba:f66a:6f80  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:1c:3f  txqueuelen 1000  (Ethernet)
        RX packets 391887  bytes 559453355 (533.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 185573  bytes 11520948 (10.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.52.139  netmask 255.255.255.0  broadcast 192.168.52.255
        inet6 fe80::f7fb:4ddc:f4b6:b90a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:1c:49  txqueuelen 1000  (Ethernet)
        RX packets 14  bytes 1737 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 4219 (4.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.修改域名区域数据配置文件“xyz.com.zone”的解析地址

[root@localhost html]# vim /var/named/xyz.com.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.52.139    //修改ip地址为192.168.52.139

[root@localhost html]# systemctl restart named    //重启dns服务
[root@localhost html]# 

4.用测试机检查域名解析是否正常(正常)

5.修改nginx服务的配置文件

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf

    server {
        listen       192.168.52.133:80;     //监听IP地址与端口
        server_name  www.abc.com;    //域名
        charset utf-8;    //字符集,utf-8支持中文字符
        access_log  logs/www.abc.com.access.log;    //访问日志
        location / { 
            root   /var/www/html/abc;    //站点
            index  index.html index.htm;   //支持的首页格式
        }
        error_page   500 502 503 504  /50x.html;    //访问错误首页文件
        location = /50x.html {
            root   html;      //站点
        }
    } 


    server {
        listen       192.168.52.139:80;     //监听IP地址与端口
        server_name  www.xyz.com;    //域名
        charset utf-8;    //字符集,utf-8支持中文字符
        access_log  logs/www.xyz.com.access.log;    //访问日志
        location / {
            root   /var/www/html/xyz;    //站点
            index  index.html index.htm;   //支持的首页格式
        }
        error_page   500 502 503 504  /50x.html;    //访问错误首页文件
        location = /50x.html {
            root   html;      //站点
        }
    }

6.测试配置文件,没有问题,重启服务

[root@localhost html]# nginx -t    //测试配置文件
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost html]# service nginx restart    //重启服务
[root@localhost html]# 

7.用测试机分别访问两个不同IP地址的域名