zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Linux apache常见的配置(6)实现多虚拟主机的配置

2023-02-18 16:34:38 时间

多虚拟主机

多虚拟主机:一个服务器上实现多个网站

一个服务器上建立多个网站的方法:
  • 1.通过ip地址来区分

  • 2.通过不同的端口号来区分

  • 3.通过FQDN域名来进行区分

虚拟主机的实现:
<VirtualHost IP:PORT>
   ServerName FQDN
   DocumentRoot  "/path"
</VirtualHost>
相关指令:
ServerAlias:虚拟主机的别名;可多次使用

ErrorLog: 错误日志

CustomLog:访问日志

<Directory "/path"> </Directory>  #定义访问权限
例如:浏览器访问不同端口,得到不同的网站
[root@CentOS8 ~]# echo /var/www/html/a/index.html > /var/www/html/a/index.html
[root@CentOS8 ~]# echo /var/www/html/b/index.html > /var/www/html/b/index.html
[root@CentOS8 ~]# echo /var/www/html/c/index.html > /var/www/html/c/index.html
[root@CentOS8 ~]# echo /var/www/html/d/index.html > /var/www/html/d/index.html

[root@CentOS8 ~]# cat /etc/httpd/conf.d/virt.conf 
listen 8001
listen 8002
listen 8003
<virtualhost *:8001>
documentroot /var/www/html/a
CustomLog logs/website1_access.log combined
<directory /var/www/html/a>
require all granted
</directory>
</virtualhost>

<virtualhost *:8002>
documentroot /var/www/html/b
CustomLog logs/website2_access.log combined
<directory /var/www/html/b>
require all granted
</directory>
</virtualhost>

<virtualhost *:8003>
documentroot /var/www/html/c
CustomLog logs/website3_access.log combined
<directory /var/www/html/c>
require all granted
</directory>
</virtualhost>
浏览器输入不同的ip,得到不同的网站(同一个服务器)
[root@CentOS8 ~]# ip addr add 10.0.0.24/24  dev eth0 label eth0:24
[root@CentOS8 ~]# ip addr add 10.0.0.34/24  dev eth0 label eth0:34
[root@CentOS8 ~]# ip addr add 10.0.0.44/24  dev eth0 label eth0:44

[root@CentOS8 ~]# cat /etc/httpd/conf.d/virt_ip.conf 
<virtualhost 10.0.0.24:80>
documentroot /var/www/html/a  #documentroot:网站的路径
CustomLog logs/website24_access.log combined
<directory /var/www/html> #文件目录授权
require all granted
</directory>
</virtualhost>

<virtualhost 10.0.0.34:80>
documentroot /var/www/html/b
CustomLog logs/website34_access.log combined
<directory /var/www/html>
require all granted
</directory>
</virtualhost>

<virtualhost 10.0.0.44:80>
documentroot /var/www/html/c
CustomLog logs/website44_access.log combined
<directory /var/www/html>
require all granted
</directory>
</virtualhost>
基于不同的FQDN得到不同的网站:

例如:

[root@CentOS8 conf.d]# cat virtual.conf 
<VirtualHost *:80> #端口号
 ServerName www.a.com  #定义访问的FQDN
 DocumentRoot "/www/a.com/htdocs"

<Directory "/www/a.com/htdocs"> #给指定的目录授权
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

ErrorLog "logs/a_error_log"  #定义错误日志
CustomLog "logs/a_access_log" combined #定义通用日志
</VirtualHost>

[root@CentOS8 httpd]# cat /etc/hosts
10.0.0.14 www.a.com www.b.com www.c.com

[root@CentOS8 conf.d]# curl www.a.com
/www/a.com/htdocs
[root@CentOS8 conf.d]# curl www.b.com
/www/a.com/htdocs
[root@CentOS8 conf.d]# curl www.c.com
/www/a.com/htdocs