Construction of Web Hosting
Virtual Web Hosting:
1. In the same - run multiple Web sites physical servers, which are not independent of each site occupied by a real computer
httpd virtual hosts type:
1. Host-based virtual domain (common corporate)
2. IP address-based virtual hosts
3. Based on the virtual host ports
Examples of large corporate projects:
two physical hosts (A / B)
two hosts, there are two virtual site
hosts A and B have accp sites and sites kgc
identical website content, while providing business outside, not only uses reasonable distribution, also played a hot standby
learn a host architecture two sites
A. Construction of a domain name based virtual hosts
Application examples:
1. Construction of two virtual Web sites
www.kgc.com, IP address 173.17.17.11
www.kcce.com, IP address 173.17.17.11
2. access to both the domain name in the browser, displays different content
Web Hosting provides domain name resolves to:
[root@dnssvr ~]# vim /var/named/chroot/var/named/kgc.com.zone
@ IN NS dnssvr.kgc.com.
dnssvr IN A 173.1 7.1 7.2
www IN A 173.17.17.11
[root@dnssvr ~]# vim /var/named/chroot/var/named/kcce.com.zone
@ IN NS dnssvr.kgc.com.
www IN A 1 73.1 7.1 7.1 1
Page document prepared for the virtual host:
[root@www ~]# mkdir -p /var/www/html/kgccom
[root@www ~]# mkdir -p /var/www/html/kccecom
[root@www ~]# echo "<h1 > www.kgc.com</h1>" >
/var/www/html/kgccom/index.html
[root@www ~]# echo "<h1 > www.kcce.com </h1>" >
/var/www/html/kccecom/index.html
Add a virtual host configuration:
[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/kgccom"
ServerName www.kgc.com
ErrorLog "logs/www.kgc.com.error_log"
CustomLog "logs/www.kgc.com.access_log" common
< Directory "/var/www/html" >
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/kccecom"
ServerName www.kcce.com
<VirtualHost>
In each client to access virtual Web host
Demo1: name-based virtual hosts access
Add a second NIC card in the virtual machine settings and displays:
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.131 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::a7c6:cf70:62f2:faf0 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:86:f9:b2 txqueuelen 1000 (Ethernet)
RX packets 667004 bytes 977833518 (932.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 165563 bytes 10169247 (9.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.134 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::9ce4:351a:2c74:9ad5 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:86:f9:bc txqueuelen 1000 (Ethernet)
RX packets 216 bytes 17516 (17.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26 bytes 4391 (4.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
//目前主机中有两张网卡:ens33和ens36,地址分别为:192.168.56.131和 192.168.56.134
Install the package:
[root@localhost ~]# yum install bind httpd -y
Modify the DNS configuration file:
[root@localhost ~]# 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; }; //其中的locahost改为any
修改完成后按Esc,输入:wq保存退出
Modify zone configuration file:
[root@localhost ~]# vim /etc/named.rfc1912.zones
//找到以下格式,按5yy复制五行,在任意一个5行的最后一行按o在下一行插入,修改其中域名
zone "accp.com" IN {
type master;
file "accp.com.zone";
allow-update { none; };
};
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};
修改完成后按Esc,输入:wq保存退出
Modify area data configuration file:
[root@localhost ~]# 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 accp.com.zone
[root@localhost named]# vim accp.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.56.131 //此处为添加的主机A记录,地址指向自己
//需要删除IPv6的解析
修改完成后按Esc,输入:wq保存退出
[root@localhost named]# cp -p accp.com.zone kgc.com.zone
[root@localhost named]# vim kgc.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.56.131
//此处的文件内容不需要做任何修改
可直接输入:q退出
//为方便后面测试解析,接下来我们启动服务,并关闭防火墙及安全功能
[root@localhost named]# systemctl start named
[root@localhost named]# systemctl stop firewalld.service
[root@localhost named]# setenforce 0
At this point you can test whether you can perform DNS resolution:
此处我们使用一台win7虚拟机进行DNS的解析:
先需要在网络的更改适配器设置中对IPv4的DNS地址进行修改:192.168.56.131
//此处修改的是DNS主机的地址
再使用管理员身份运行cmd命令:
C:\Windows\system32>nslookup www.accp.com
服务器: UnKnown
Address: 192.168.56.131
名称: www.accp.com
Address: 192.168.56.131
C:\Windows\system32>nslookup www.kgc.com
服务器: UnKnown
Address: 192.168.56.131
名称: www.kgc.com
Address: 192.168.56.131
//此时通过验证表明DNS的解析是没有问题的,接下来我们就可以做网站了
Do virtual host configuration file:
[root@localhost named]# cd /etc/httpd
[root@localhost httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# mkdir extra
[root@localhost conf]# ls
extra httpd.conf magic
[root@localhost conf]# cd extra/
[root@localhost extra]# vim vhost.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/accp/" //站点目录
ServerName www.accp.com //域名
ErrorLog "logs/www.accp.com.error_log" //错误日志
CustomLog "logs/www.accp.com.access_log" common //访问日志
<Directory "/var/www/html/">
Require all granted //访问权限为允许所有
</Directory>
</VirtualHost>
按Esc退出插入模式,输入:11,19 s/accp/kgc/g //把从11行到19行把其中的accp改成kgc,做全局替换
11 <VirtualHost *:80>
12 DocumentRoot "/var/www/html/kgc/"
13 ServerName www.kgc.com
14 ErrorLog "logs/www.kgc.com.error_log"
15 CustomLog "logs/www.kgc.com.access_log" common
16 <Directory "/var/www/html/">
17 Require all granted
18 </Directory>
19 </VirtualHost>
修改完成后按Esc,输入:wq保存退出
[root@localhost extra]# cd ../../
[root@localhost httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@localhost httpd]# pwd
/etc/httpd //参考点,以工作目录为参考
[root@localhost httpd]# ls -l
总用量 0
drwxr-xr-x. 3 root root 50 10月 22 22:36 conf
drwxr-xr-x. 2 root root 82 10月 22 21:53 conf.d
drwxr-xr-x. 2 root root 146 10月 22 21:53 conf.modules.d
lrwxrwxrwx. 1 root root 19 10月 22 21:53 logs -> ../../var/log/httpd //软链接在此目录下
lrwxrwxrwx. 1 root root 29 10月 22 21:53 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root 10 10月 22 21:53 run -> /run/httpd
[root@localhost httpd]# cd /var/log/httpd/
[root@localhost httpd]# ls
//此时是空的,因为没有启动,所以没有日志文件
Create a site:
[root@localhost httpd]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir accp kgc
[root@localhost html]# ls
accp kgc
[root@localhost html]# cd accp/
[root@localhost accp]# ls
[root@localhost accp]# vim index.html
<h1>this is accp web</h1>
输入完成后按Esc,输入:wq保存退出
[root@localhost accp]# cd ../kgc/
[root@localhost kgc]# vim index.html
<h1>this is kgc web</h1>
输入完成后按Esc,输入:wq保存退出
在主配置文件中的包含语句需要进行检查,因为之前的写入内容未在主配置文件中进行声明:
[root@localhost kgc]# cd /etc/httpd/
[root@localhost httpd]# cd conf/extra/
[root@localhost extra]# ls
vhost.conf
[root@localhost extra]# pwd
/etc/httpd/conf/extra
[root@localhost extra]# cd ../../
[root@localhost httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@localhost httpd]# pwd
/etc/httpd
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
extra httpd.conf magic
[root@localhost conf]# vim httpd.conf
//按大写字母G到末行,按o在下行插入
Include conf/extra/vhost.conf
输入完成后按Esc,输入:wq保存退出
[root@localhost extra]# systemctl start httpd
Verification: win7 browser, enter: www.accp.com / www.kgc.com
The above is based on a domain name to access the Web Hosting
——————————————————————————————————————————————————
II. Construction of a port-based virtual hosts
Application examples:
1. Construction of two virtual Web sites
www.kcce.com, IP address, port 173.17.17.11:80
www.kcce.com, IP address, port 173.17.17.11:8353
2. access both in the browser when ports, display different content
[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
< VirtualHost 173.1 7.17.11:80>
DocumentRoot "/var/www/htm/kccecom"
ServerName www.kcce.com
</VirtualHost>
<VirtualHost 173.17.17.11:8353>
DocumentRoot "/var/www/htm/kccepad"
ServerName www.kcce.com
</virtualHost>
Listen 80
Listen 8353
#监听端口写在主配置文件中
Demo2: access based on different ports
[root@localhost extra]# vim vhost.conf
<VirtualHost *:8080>
DocumentRoot "/var/www/html/kgc02/"
ServerName www.kgc.com
ErrorLog "logs/www.kgc02.com.error_log"
CustomLog "logs/www.kgc02.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
输入完成后按Esc,输入:wq保存退出
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# ls
accp kgc
[root@localhost html]# mkdir kgc02
[root@localhost html]# ls
accp kgc kgc02
[root@localhost html]# cd kgc02/
[root@localhost kgc02]# vim index.html
<h1>this is kgc02 web</h1>
输入完成后按Esc,输入:wq保存退出
[root@localhost kgc02]# vim /etc/httpd/conf/httpd.conf
输入:/Listen查到到监听端口位置
Listen 192.168.56.131:80
Listen 192.168.56.131:8080
#Listen 80
此处需要做的更改的是把IPv6的监听给注释关闭,同时把IPv4的监听地址更换为自己Linux的IP地址,使用yy复制,在下行粘贴,将端口改为8080
#修改完成后按Esc,输入:wq保存退出
[root@localhost kgc02]# systemctl restart httpd //重启服务
[root@localhost kgc02]# netstat -ntap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.56.131:8080 0.0.0.0:* LISTEN 52732/httpd
tcp 0 0 192.168.56.131:80 0.0.0.0:* LISTEN 52732/httpd
#此时可以看到两个端口都处于监听状态
Verification: win7 browser, enter: www.kgc.com:8080
At this show is kgc02 home page of our pre-written 8080 port
if you enter: www.kgc.com: 80, it also shows that this is kgc web interface
These are based on the way to access the virtual host port
——————————————————————————————————————————————————
Demo3: access based on different IP
Previously, we have two NIC addresses are: 192.168.56.131 and 192.168.56.134, here need to spend
[root@localhost kgc02]# cd /etc/httpd/conf/extra/
[root@localhost extra]# ls
vhost.conf
[root@localhost extra]# vim vhost.conf
//11,29 s/^/#/g //全局把11行到29行进行注释,此处不需要使用
<VirtualHost 192.168.56.131:80> //此处将*号修改为第一张网卡的IP
DocumentRoot "/var/www/html/accp/"
ErrorLog "logs/www.accp.com.error_log"
CustomLog "logs/www.accp.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.56.134:80> //此处将*号改为第二张网卡的IP,并将下面的accp改为accp02以作区分
DocumentRoot "/var/www/html/accp02/"
ErrorLog "logs/www.accp02.com.error_log"
CustomLog "logs/www.accp02.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
#修改完成后按Esc,输入:wq保存退出
Create a directory site:
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# mkdir accp02
[root@localhost html]# cd accp02/
[root@localhost accp02]# vim index.html
<h1>this is 134 accp02 web</h1>
#输入完成后按Esc,输入:wq保存退出
[root@localhost accp02]# vim ../accp/index.html
<h1>this is 131 accp web</h1>
#修改完成后按Esc,输入:wq保存退出
Modify listening address:
[root@localhost accp02]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.56.131:80
Listen 192.168.56.134:80
#Listen 192.168.56.131:8080
把8080端口进行注释,并添加一行192.168.56.134的80端口监听
#修改完成后按Esc,输入:wq保存退出
[root@localhost accp02]# systemctl restart httpd
Verification: win7 browser, enter: 192.168.56.131 / 192.168.56.134
Modify DNS:
[root@localhost accp02]# cd /etc/httpd/conf/extra/
[root@localhost extra]# vim vhost.conf
<VirtualHost 192.168.56.131:80>
DocumentRoot "/var/www/html/accp/"
ServerName www.accp.com
ErrorLog "logs/www.accp.com.error_log"
CustomLog "logs/www.accp.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.56.134:80>
DocumentRoot "/var/www/html/accp02/"
ServerName www.naccp.com
ErrorLog "logs/www.accp02.com.error_log"
CustomLog "logs/www.accp02.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
#以上两段需要添加ServerName
Add a new area:
[root@localhost extra]# vim /etc/named.rfc1912.zones
zone "naccp.com" IN {
type master;
file "naccp.com.zone";
allow-update { none; };
};
#添加以上内容
#修改完成后按Esc,输入:wq保存退出
[root@localhost extra]# cd /var/named/
[root@localhost named]# cp -p accp.com.zone naccp.com.zone
[root@localhost named]# vim naccp.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.56.134 //IP地址改为二网卡的地址
#修改完成后按Esc,输入:wq保存退出
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl restart httpd //重启服务