千家信息网

Apache虚拟主机的访问方式(基于域名、端口、IP)

发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,构建虚拟主机虚拟Web主机:1.在同一-台物理服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机httpd支持的虚拟主机类型:1.基于域名的虚拟主机(企业常用)2.基于IP地址的虚
千家信息网最后更新 2024年09月25日Apache虚拟主机的访问方式(基于域名、端口、IP)

构建虚拟主机

虚拟Web主机:

1.在同一-台物理服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机

httpd支持的虚拟主机类型:

1.基于域名的虚拟主机(企业常用)
2.基于IP地址的虚拟主机
3.基于端口的虚拟主机

大型公司实例项目:
两台物理主机(A/B)
两台主机中分别有两个虚拟站点
主机A和B中都有accp网站和kgc网站
网站内容完全相同,对外提供业务时,既用到了合理分配,也起到了双机热备
学习一台主机架构两个网站

一.构建虚拟主机一 基于域名

应用示例:

1.构建2个虚拟Web站点
www.kgc.com, IP地址为173.17.17.11
www.kcce.com, IP地址为173.17.17.11
2.在浏览器中访问这两个域名时,分别显示不同的内容

为虚拟主机提供域名解析:
[root@dnssvr ~]# vim /var/named/chroot/var/named/kgc.com.zone@   IN  NS  dnssvr.kgc.com.dnssvr IN   A   173.1 7.1 7.2www 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
为虚拟主机准备网页文档:
[root@www ~]# mkdir -p /var/www/html/kgccom[root@www ~]# mkdir -p /var/www/html/kccecom[root@www ~]# echo "

www.kgc.com

" >/var/www/html/kgccom/index.html[root@www ~]# echo "

www.kcce.com

" >/var/www/html/kccecom/index.html
添加虚拟主机配置:
[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf    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        DocumentRoot "/var/www/html/kccecom"    ServerName www.kcce.com
在客户机分别访问虚拟Web主机

Demo1:基于域名访问虚拟主机

在虚拟机设置中添加网卡第二张网卡,并显示:

[root@localhost ~]# ifconfigens33: flags=4163  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        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 0ens36: flags=4163  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        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
安装软件包:
[root@localhost ~]# yum install bind httpd -y
修改DNS的配置文件:
[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保存退出
修改区域配置文件:
[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保存退出
修改区域数据配置文件:
[root@localhost ~]# cd /var/named/[root@localhost named]# lsdata  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.1www 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.1www 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
此时可以测试是否可以进行DNS解析:
此处我们使用一台win7虚拟机进行DNS的解析:先需要在网络的更改适配器设置中对IPv4的DNS地址进行修改:192.168.56.131       //此处修改的是DNS主机的地址再使用管理员身份运行cmd命令:   C:\Windows\system32>nslookup www.accp.com服务器:  UnKnownAddress:  192.168.56.131名称:    www.accp.comAddress:  192.168.56.131C:\Windows\system32>nslookup www.kgc.com服务器:  UnKnownAddress:  192.168.56.131名称:    www.kgc.comAddress:  192.168.56.131//此时通过验证表明DNS的解析是没有问题的,接下来我们就可以做网站了
做虚拟主机配置文件:
[root@localhost named]# cd /etc/httpd[root@localhost httpd]# lsconf  conf.d  conf.modules.d  logs  modules  run[root@localhost httpd]# cd conf[root@localhost conf]# lshttpd.conf  magic[root@localhost conf]# mkdir extra[root@localhost conf]# lsextra  httpd.conf  magic[root@localhost conf]# cd extra/[root@localhost extra]# vim vhost.conf  DocumentRoot "/var/www/html/accp/"        //站点目录  ServerName www.accp.com       //域名  ErrorLog "logs/www.accp.com.error_log"        //错误日志  CustomLog "logs/www.accp.com.access_log" common       //访问日志      Require all granted         //访问权限为允许所有  按Esc退出插入模式,输入:11,19 s/accp/kgc/g    //把从11行到19行把其中的accp改成kgc,做全局替换 11  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    17     Require all granted 18    19 修改完成后按Esc,输入:wq保存退出
[root@localhost extra]# cd ../../[root@localhost httpd]# lsconf  conf.d  conf.modules.d  logs  modules  run[root@localhost httpd]# pwd/etc/httpd          //参考点,以工作目录为参考[root@localhost httpd]# ls -l总用量 0drwxr-xr-x. 3 root root  50 10月 22 22:36 confdrwxr-xr-x. 2 root root  82 10月 22 21:53 conf.ddrwxr-xr-x. 2 root root 146 10月 22 21:53 conf.modules.dlrwxrwxrwx. 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/moduleslrwxrwxrwx. 1 root root  10 10月 22 21:53 run -> /run/httpd[root@localhost httpd]# cd /var/log/httpd/[root@localhost httpd]# ls//此时是空的,因为没有启动,所以没有日志文件
创建站点:
[root@localhost httpd]# cd /var/www/html/[root@localhost html]# ls[root@localhost html]# mkdir accp kgc[root@localhost html]# lsaccp  kgc[root@localhost html]# cd accp/[root@localhost accp]# ls[root@localhost accp]# vim index.html

this is accp web

输入完成后按Esc,输入:wq保存退出[root@localhost accp]# cd ../kgc/[root@localhost kgc]# vim index.html

this is kgc web

输入完成后按Esc,输入:wq保存退出在主配置文件中的包含语句需要进行检查,因为之前的写入内容未在主配置文件中进行声明:[root@localhost kgc]# cd /etc/httpd/[root@localhost httpd]# cd conf/extra/[root@localhost extra]# lsvhost.conf[root@localhost extra]# pwd/etc/httpd/conf/extra[root@localhost extra]# cd ../../[root@localhost httpd]# lsconf conf.d conf.modules.d logs modules run[root@localhost httpd]# pwd/etc/httpd[root@localhost httpd]# cd conf[root@localhost conf]# lsextra httpd.conf magic[root@localhost conf]# vim httpd.conf //按大写字母G到末行,按o在下行插入Include conf/extra/vhost.conf输入完成后按Esc,输入:wq保存退出 [root@localhost extra]# systemctl start httpd
验证:用win7的浏览器,输入:www.accp.com / www.kgc.com


以上就是基于域名的方式来访问虚拟主机

--------------------------------------------------

二.构建虚拟主机 一 基于端口

应用示例:

1.构建两个个虚拟Web站点
www.kcce.com, IP地址、端口为173.17.17.11:80
www.kcce.com, IP地址、端口为173.17.17.11:8353
2.在浏览器中访问这两个端口时,分别显示不同的内容

[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    DocumentRoot "/var/www/htm/kccepad"    ServerName www.kcce.comListen 80Listen 8353#监听端口写在主配置文件中

Demo2:基于不同的端口进行访问

[root@localhost extra]# vim vhost.conf   DocumentRoot "/var/www/html/kgc02/"   ServerName www.kgc.com   ErrorLog "logs/www.kgc02.com.error_log"   CustomLog "logs/www.kgc02.com.access_log" common         Require all granted   输入完成后按Esc,输入:wq保存退出[root@localhost extra]# cd /var/www/html/[root@localhost html]# lsaccp  kgc[root@localhost html]# mkdir kgc02[root@localhost html]# lsaccp  kgc  kgc02[root@localhost html]# cd kgc02/[root@localhost kgc02]# vim index.html

this is kgc02 web

输入完成后按Esc,输入:wq保存退出[root@localhost kgc02]# vim /etc/httpd/conf/httpd.conf输入:/Listen查到到监听端口位置Listen 192.168.56.131:80Listen 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 -ntapActive 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 #此时可以看到两个端口都处于监听状态

验证:用win7的浏览器,输入: www.kgc.com:8080

此时显示的就是我们预先写好的8080端口的kgc02的网页主页
如果输入:www.kgc.com:80,那就还显示this is kgc web的界面

以上就是基于端口的方式来访问虚拟主机

--------------------------------------------------

Demo3:基于不同的IP进行访问

此前我们有两张网卡地址分别为:192.168.56.131和192.168.56.134,此处需要用上

[root@localhost kgc02]# cd /etc/httpd/conf/extra/[root@localhost extra]# lsvhost.conf[root@localhost extra]# vim vhost.conf//11,29 s/^/#/g     //全局把11行到29行进行注释,此处不需要使用         //此处将*号修改为第一张网卡的IP  DocumentRoot "/var/www/html/accp/"  ErrorLog "logs/www.accp.com.error_log"  CustomLog "logs/www.accp.com.access_log" common      Require all granted    //此处将*号改为第二张网卡的IP,并将下面的accp改为accp02以作区分  DocumentRoot "/var/www/html/accp02/"  ErrorLog "logs/www.accp02.com.error_log"  CustomLog "logs/www.accp02.com.access_log" common      Require all granted  #修改完成后按Esc,输入:wq保存退出
创建目录站点:
[root@localhost extra]# cd /var/www/html/[root@localhost html]# mkdir accp02[root@localhost html]# cd accp02/[root@localhost accp02]# vim index.html

this is 134 accp02 web

#输入完成后按Esc,输入:wq保存退出[root@localhost accp02]# vim ../accp/index.html

this is 131 accp web

#修改完成后按Esc,输入:wq保存退出
修改监听地址:
[root@localhost accp02]# vim /etc/httpd/conf/httpd.confListen 192.168.56.131:80Listen 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
验证:用win7的浏览器,输入: 192.168.56.131 / 192.168.56.134


修改DNS:
[root@localhost accp02]# cd /etc/httpd/conf/extra/[root@localhost extra]# vim vhost.conf   DocumentRoot "/var/www/html/accp/"  ServerName www.accp.com  ErrorLog "logs/www.accp.com.error_log"  CustomLog "logs/www.accp.com.access_log" common      Require all granted    DocumentRoot "/var/www/html/accp02/"  ServerName www.naccp.com  ErrorLog "logs/www.accp02.com.error_log"  CustomLog "logs/www.accp02.com.access_log" common      Require all granted  #以上两段需要添加ServerName
添加新区域:
[root@localhost extra]# vim /etc/named.rfc1912.zoneszone "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.1www IN  A       192.168.56.134      //IP地址改为二网卡的地址#修改完成后按Esc,输入:wq保存退出[root@localhost named]# systemctl restart named[root@localhost named]# systemctl restart httpd         //重启服务
验证:用win7的浏览器,输入: www.accp.com / www.naccp.com


以上就是基于不同IP的方式访问虚拟主机

0