给Apache配置虚拟主机&&实现单主机80端口多域名访问不同web站点

  • A+
所属分类:一键建站

文章参考资料:

术语虚拟主机指的是在单一机器上运行多个网站 (例如 company1.example.com 和 company2.example.com) 。 虚拟主机可以“基于 IP”,即每个 IP 一个站点; 或者“基于名称”, 即每个 IP 多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

Apache 是第一个支持基于 IP 的虚拟主机的服务器。 Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。 基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机.

官方说明地址:http://httpd.apache.org/docs/2.4/zh-cn/vhosts/
官方说明地址:http://httpd.apache.org/docs/2.4/zh-cn/vhosts/name-based.html

Apache配置虚拟主机准备环境
  1. 这里我们只是简单地讲解怎么配置Apache的虚拟主机,所以我们直接运行命令
[root@99]# yum install httpd -y
  1. 查看yum安装的httpd的相关配置文件位置
[root@99]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf #主配置文件httpd.conf位置
/etc/httpd/conf.d  
#conf.d 文件夹下的“.conf”结尾的配置文件也会生效,我们只需要将虚拟主机的配置文件创建在这里就可以了
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/logs
..........
给Apache配置虚拟主机
  1. 首先进入/etc/httpd/conf.d目录下
[root@99]# cd /etc/httpd/conf.d
  1. 可以使用命令ls查看当前文件夹conf.d目录下是否存在虚拟主机配置文件类似vhost名称的
[root@99 conf.d]# ls
autoindex.conf  README  userdir.conf   welcome.conf
  1. 小编这里没有,所以我们直接创建一个使用命令vim vhost.conf 或者vi vhost.conf
[root@99 conf.d]# pwd

/etc/httpd/conf.d

[root@99 conf.d]# vim vhost.conf 

<VirtualHost *:80> #监听的端口

ServerAdmin 27549xxxx@qq.com #不重要可省略

ServerName www.xxxxx.com  #你的域名

DocumentRoot "/var/www/images"  #设置根目录的位置

directoryIndex  index.html index.php index.htm  #设置文件类型

#ErrorLog "/var/www/logs/www.xxxxx.com"  #这里可以配置日志log文件的位置

#CustomLog "/var/www/logs/www.xxxxx.com.log" common

<Directory "/var/www/images">

Options  FollowSymLinks MultiViews

#AllowOverride None
AllowOverride All

Require all granted

</Directory>

</VirtualHost>

#############################
<VirtualHost *:80>

ServerAdmin 3722xxxxx@qq.com

ServerName www.xxxxx.com

DocumentRoot "/var/www/html"

directoryIndex  index.html index.php index.htm

#ErrorLog "/var/www/logs/www.xxxxx.com"

#CustomLog "/var/www/logs/www.xxxxx.com" common

<Directory "/var/www/html">

Options  FollowSymLinks MultiViews

#AllowOverride None
AllowOverride All

Require all granted

</Directory>

</VirtualHost>
##########################################################
修改Apache主配置文件
  1. 去掉httpd中的ServerName前边的“#”注释去掉,参考我下边的配置
[root@99 conf]# pwd
/etc/httpd/conf
[root@99 conf]# vim httpd.conf 
ServerName localhost:80
  1. 执行httpd -t,测试配置文件是否有问题
[root@99 conf]# httpd -t
Syntax OK
  1. 上面我们测试的没有问题,接下来直接重新启动Apache服务就可以了。
[root@99 conf]# systemctl restart httpd
现在可以愉快的直接访问自己的域名了
直达链接
avatar

发表评论

您必须登录才能发表评论!