HTTPD 虚拟主机及完成配置示例

虚拟主机

站点标识: socket

IP相同,但端口不同
IP不同,但端口均为默认端口
FQDN不同: 请求报文中首部 Host: www.magedu.com

虚拟主机有三种实现方案:

基于ip:为每个虚拟主机准备至少一个ip地址
基于port:为每个虚拟主机使用至少一个独立的port
基于FQDN:为每个虚拟主机使用至少一个FQDN

**注意(专用于httpd-2.2):**一般虚拟机不要与中心主机混用;因此,要使用虚拟主机,得先禁用’main’主机;禁用方法:注释中心主机的DocumentRoot指令即可。

虚拟主机的配置方法

<VirtualHost  IP:PORT>
	ServerName FQDN
	DocumentRoot  ""
</VirtualHost>

其它可用指令:

ServerAlias     # 虚拟主机的别名;可多次使用
ErrorLog        # 单独指定错误日志的存放位置
CustomLog       # 单独指定访问日志的存放位置
<Directory "">
..
</Directory>
Alias
...

基于IP的虚拟主机示例

<VirtualHost 172.16.100.6:80>
	ServerName www.a.com
	DocumentRoot "/www/a.com/htdocs"
</VirtualHost>

<VirtualHost 172.16.100.7:80>
	ServerName www.b.net
	DocumentRoot "/www/b.net/htdocs"
</VirtualHost>

<VirtualHost 172.16.100.8:80>
	ServerName www.c.org
	DocumentRoot "/www/c.org/htdocs"
</VirtualHost>

基于端口的虚拟主机

<VirtualHost 172.16.100.6:80>
	ServerName www.a.com
	DocumentRoot "/www/a.com/htdocs"
</VirtualHost>

<VirtualHost 172.16.100.6:808>
	ServerName www.b.net
	DocumentRoot "/www/b.net/htdocs"
</VirtualHost>

<VirtualHost 172.16.100.6:8080>
	ServerName www.c.org
	DocumentRoot "/www/c.org/htdocs"
</VirtualHost>

基于FQDN的虚拟主机

<VirtualHost 172.16.100.6:80>
	ServerName www.a.com
	DocumentRoot "/www/a.com/htdocs"
</VirtualHost>

<VirtualHost 172.16.100.6:80>
	ServerName www.b.net
	DocumentRoot "/www/b.net/htdocs"
</VirtualHost>

<VirtualHost 172.16.100.6:80>
	ServerName www.c.org
	DocumentRoot "/www/c.org/htdocs"
</VirtualHost>

基于IP的虚拟主机的完整示例

IP地址域名文档根
192.168.1.10www.neo.com/data/web/neo/
192.168.1.100www.tang.com/data/web/tang/

1、创建文档根和主页

[root@neo ~]# cat /data/web/neo/index.html 
<h1>This is neo's website!</h1>
[root@neo ~]# cat /data/web/tang/index.html 
<h1>This is tang's website!</h1>

2、修改本机的 hosts 文件,并配置本机的 IP 地址

[root@neo ~]# ip addr list  | grep "inet\>" | grep -v 127.0.0.1 | grep -v 192.168.10.5
    inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33
    inet 192.168.1.100/32 scope global ens33
[root@neo ~]# cat /etc/hosts
192.168.1.10 www.neo.com
192.168.1.100 www.tang.com

3、配置 HTTPD 主配置文件,进行语法检查,并重启服务

[root@Neo ~]# vim /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.1.10:80>
        ServerName www.neo.com
        DocumentRoot "/data/web/neo"
        <Directory  "/data/web/neo">
                AllowOverride None
                Options None
                Require all granted
        </Directory>
</VirtualHost>

<VirtualHost 192.168.1.100:80>
        ServerName www.tang.com
        DocumentRoot "/data/web/tang"
        <Directory  "/data/web/tang">
                AllowOverride None
                Options None
                Require all granted
        </Directory>
</VirtualHost>
[root@Neo ~]# httpd -t
Syntax OK
[root@Neo ~]# systemctl restart httpd.service

4、通过浏览器访问,进行验证

在这里插入图片描述
在这里插入图片描述

基于端口的虚拟主机的完整示例

IP地址域名文档根
192.168.1.10:80www.neo.com/data/web/neo/
192.168.1.10:8080www.tang.com/data/web/tang/

1、创建文档根和主页

[root@neo ~]# cat /data/web/neo/index.html 
<h1>This is neo's website!</h1>
[root@neo ~]# cat /data/web/tang/index.html 
<h1>This is tang's website!</h1>

2、修改本机的 hosts 文件,并配置本机的 IP 地址和 iptables

[root@neo ~]# ip addr list  | grep "inet\>" | grep -v 127.0.0.1 | grep -v 192.168.10.5
    inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33
[root@neo ~]# cat /etc/hosts
192.168.1.10:80 www.neo.com
192.168.1.10:8080 www.tang.com
[root@Neo ~]# iptables -I INPUT -p TCP --dport 80 -j ACCEPT
[root@Neo ~]# iptables -I INPUT -p TCP --dport 8080 -j ACCEPT

3、配置 HTTPD 主配置文件,进行语法检查,并重启服务

[root@Neo ~]# vim /etc/httpd/conf/httpd.conf   # 进行虚拟主机配置,并且配置监听接口
VirtualHost 192.168.1.10:80>  
        ServerName www.neo.com
        DocumentRoot "/data/web/neo"
        <Directory  "/data/web/neo">
                AllowOverride None
                Options None
                Require all granted
        </Directory>
</VirtualHost>

Listen 80

<VirtualHost 192.168.1.10:8080>
        ServerName www.tang.com
        DocumentRoot "/data/web/tang"
        <Directory  "/data/web/tang">
                AllowOverride None
                Options None
                Require all granted
        </Directory>
</VirtualHost>

Listen 8080
[root@Neo ~]# httpd -t
Syntax OK
[root@Neo ~]# systemctl restart httpd.service

[root@Neo ~]# ss -tnl             # 两个监听端口
State       Recv-Q Send-Q    Local Address:Port              Peer Address:Port              
LISTEN      0      128                   *:22                           *:*                  
LISTEN      0      100           127.0.0.1:25                           *:*                  
LISTEN      0      128                  :::8080                        :::*                  
LISTEN      0      128                  :::80                          :::*                  
LISTEN      0      32                   :::21                          :::*                  
LISTEN      0      128                  :::22                          :::*                  
LISTEN      0      100                 ::1:25                          :::*                

4、通过浏览器访问,进行验证

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值