Linux下配置基于Apache的Web虚拟主机

Web虚拟主机指的是在同一台服务器中运行多个web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机,通过虚拟Web主机服务可以充分利用服务器的硬件资源。

使用httpd可以非常方便的去搭建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点。httpd支持的虚拟主机类型有这么三种(与Windows 的IIS服务一样):

1、相同IP、端口号、不同域名的虚拟主机;

2、相同IP、不同端口号的虚拟主机;

3、不同IP、相同端口号的虚拟主机;

大多数运维人员在搭建虚拟主机时,应该都是采用第一种方案,基于不同域名来做虚拟主机,这也是最人性化的一种方案。

一、开始搭建基于域名的虚拟主机:

1、为虚拟主机提供域名解析

DNS服务安装参考:https://www.linuxidc.com/Linux/2019-05/158642.htm,若对DNS服务的配置不太熟悉,建议参考博文链接去搭建DNS服务,而不建议参考下面的内容(没解释那么详细):

[root@localhost /]# vim /etc/named.conf #named服务器主配置文件 ..................... #省略部分内容 zone "test1.com" in { type master; file "test1.com.zone"; }; zone "test2.com" in { type master; file "test2.com.zone"; }; [root@localhost /]# vim /var/named/test1.com.zone #test1.com区域配置文件 ...................... #省略部分内容 in ns www in a 192.168.1.1 [root@localhost /]# vim /var/named/test2.com.zone #test2.com区域配置文件 ...................... #省略部分内容 in ns www in a 192.168.1.1 [root@localhost named]# systemctl start named #启动DNS服务

2、为虚拟主机准备网页文档

为每个虚拟web主机准备网站目录及网页文档。为了方便测试,分别为每个虚拟web主机提供包含不同的首页文件:

[root@localhost named]# mkdir -p /var/www/test1com [root@localhost named]# mkdir -p /var/www/test2com [root@localhost named]# echo "<h1></h1>" > /var/www/test1com/index.html [root@localhost named]# echo "<h1></h1>" > /var/www/test2com/index.html

希望上述操作大家可以看懂在干什么吧,懒得解释了。

3、添加虚拟主机配置

[root@localhost named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #创建独立的配置文件 该文件默认存在) ..................... #省略部分内容 #设置test1虚拟站点区域 <VirtualHost *:80> #配置监听地址及端口号,*代表任意地址 ServerAdmin 916551516@qq.com #设置服务器管理员的邮箱,当服务异常时, 向该邮箱发送消息。该行也可删除。 DocumentRoot "/var/www/test1com" #设置网站根目录 ServerName #配置域名 ErrorLog "logs/test1-error_log" #错误日志存放在/usr/local/httpd/logs CustomLog "logs/test1-access_log" common #访问记录日志存放处 <directory "/var/www"> #设置目录访问权限 require all granted </directory> </VirtualHost> # 设置test2虚拟站点区域 <VirtualHost *:80> ServerAdmin 916551516@qq.com DocumentRoot "/var/www/test2com" ServerName ErrorLog "logs/test2-error_log" CustomLog "logs/test2-access_log" common <directory "/var/www"> require all granted </directory> </VirtualHost> [root@localhost named]# vim /usr/local/httpd/conf/httpd.conf #修改网站主配置文件 ............... #进入主配置文件后,在末行模式下执行 /vhosts ,定位到下面该行 Include conf/extra/httpd-vhosts.conf #删除该行开头的#号,以便加载独立的配置文件 [root@localhost named]# systemctl restart httpd #重启服务使配置生效, 我把httpd添加成了系统服务, 才可使用systemctl命令来控制httpd服务,若没添加为系统服务, 还是老老实实的使用服务自带的控制工具吧。

4、在客户机中访问虚拟web主机

验证吧,结果如下:

Linux下配置基于Apache的Web虚拟主机

Linux下配置基于Apache的Web虚拟主机

齐活,基于不同域名的虚拟主机至此就做完了。

二、基于IP地址的虚拟主机:

(十万个不想接着往下写了,因为接下来的内容了解即可,不会用到的,不过呢.....为了以防万一,还是简单写一下吧)

注意,每一种方式之间毫无任何关联,千万别把基于IP地址的虚拟主机和基于域名的搞混了

[root@localhost named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #编辑子配置文件 .............. <VirtualHost 192.168.1.1:80> #配置监听地址192.168.1.10 ServerAdmin 916551516@qq.com DocumentRoot "/var/www/test1com" ErrorLog "test1-error_log" CustomLog "test1-access_log" common <directory "/var/www"> require all granted </directory> </VirtualHost> <VirtualHost 192.168.1.10:80> #配置监听地址为192.168.1.10 ServerAdmin 916551516@qq.com DocumentRoot "/var/www/test2com" ErrorLog "test2-error_log" CustomLog "test2-access_log" common <directory "/var/www"> require all granted </directory> </VirtualHost> [root@localhost named]# vim /usr/local/httpd/conf/httpd.conf ...................... Include conf/extra/httpd-vhosts.conf #加载独立的配置文件 [root@localhost named]# systemctl restart httpd #重启httpd服务

客户机访问:

Linux下配置基于Apache的Web虚拟主机

Linux下配置基于Apache的Web虚拟主机

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b2935a1734be5f71009b84ffac9dcfe7.html