如何配置Apache虚拟主机?

配置Apache虚拟主机

如何配置Apache虚拟主机?

一、概述

什么是虚拟主机

虚拟主机是指在一台物理服务器上运行多个独立的网站或应用程序,每个虚拟主机在逻辑上独立,拥有自己的域名、文件目录和配置文件,通过共享服务器资源,可以大大降低网站构建及运行成本,提高服务器的利用率。

虚拟主机的类型

基于域名的虚拟主机:每个虚拟主机使用不同的域名,但对应的IP地址相同,这是最常见的类型。

基于IP地址的虚拟主机:每个虚拟主机使用不同的IP地址,这种方式需要服务器配置多个网络接口,因此较少使用。

基于端口的虚拟主机:每个虚拟主机使用不同的TCP端口号,用户在访问时需指定端口号,这种方式也不常用。

二、配置步骤

配置域名

由于申请真实域名比较麻烦,为了便于学习和测试,可以更改操作系统的hosts文件,实现将任意域名解析到指定IP地址,以管理员身份运行命令行工具,输入以下命令打开hosts文件:

C:WINDOWSsystem32driversetchosts

添加如下一行内容:

127、0.0.1 laravel.test

这样,就可以在浏览器上通过http://laravel.test来访问本机的Web服务器。

启用虚拟主机辅配置文件

Apache的conf/extra目录中有一些辅配置文件,这些文件是httpd.conf的扩展文件,用于将一部分配置抽取出来,以便于修改,打开httpd.conf文件,找到如下所示的一行配置,删除前面的“#”即可启用虚拟主机辅配置文件:

#Include conf/extra/httpdvhosts.conf

配置虚拟主机

打开conf/extra/httpdvhosts.conf文件,可以看到Apache提供的默认配置,默认配置一般用不到,可以直接删除或者全部加上“#”注释起来,然后编写自己的虚拟主机配置,具体如下:

<VirtualHost *:80>
    DocumentRoot "c:/web/apache2.4/htdocs"
    ServerName localhost
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "c:/web/www/laravel/public"
    ServerName laravel.test
</VirtualHost>
<Directory "c:/web/www">
    Options Indexes
    AllowOverride All
    Require local
</Directory>

上述配置实现了两个虚拟主机,分别是localhost和laravel.test,并且这两个虚拟主机的站点目录指定在不同的路径下,第9~13行用于配置c:/web/www路径的访问权限,第10行用于关闭目录列表功能;第11行用于开启分布式配置文件,开启后会自动读取目录下的.htaccess文件中的配置;第12行用于配置目录访问权限,设为Require local表示只允许本地访问,若允许所有访问,可设为Require all granted,若拒绝所有访问,可设为Require all denied。

编写测试文件

创建C:/web/www/laravel/public目录,并在目录中编写一个内容为“Laravel”的index.html网页,然后重启Apache服务使配置生效,使用浏览器进行访问测试,localhost和laravel.test这两个虚拟主机的页面效果如图18所示。

如何配置Apache虚拟主机?

三、高级配置

基于IP地址的虚拟主机配置

(1)为主机添加多个IP

查看原有IP:

ip addr show dev eth0

添加一个IP:

ip addr add 192.168.137.201/24 dev eth0

(2)添加虚拟主机配置文件

进入配置目录:

cd /etc/httpd/conf.d/

创建一个配置文件,编辑内容如下:

<VirtualHost 192.168.137.200:80>
    DocumentRoot "/var/www/test200"
    ServerName www.test200.com
</VirtualHost>
<VirtualHost 192.168.137.201:80>
    DocumentRoot "/var/www/test201"
    ServerName www.test201.com
</VirtualHost>

切换目录:

cd /var/www/

创建目录并添加主页:

mkdir test200 test201
echo "Test200" > ./test200/index.html
echo "Test201" > ./test201/index.html

(3)测试

重启Apache服务:

service httpd restart

使用elinks进行测试:

elinks source 192.168.137.200 test200
elinks source 192.168.137.201 test201

基于端口的虚拟主机配置

(1)在主配置文件添加监听端口

如何配置Apache虚拟主机?

在原有行Listen 80的基础上,再添加一行Listen 8080:

Listen 80
Listen 8080

(2)添加8080端口虚拟配置

在virtualhost.conf文件中添加以下内容:

<VirtualHost 192.168.137.201:8080>
    DocumentRoot "/var/www/test2018080"
    ServerName www.test2018080.com
</VirtualHost>

切换目录并创建目录和主页:

cd /var/www/
mkdir test2018080
echo "Test2018080" > ./test2018080/index.html

(3)测试

重启Apache服务:

service httpd restart

使用elinks进行测试:

elinks source 192.168.137.201:8080 test2018080

四、注意事项与最佳实践

安全性设置

确保每个虚拟主机的目录权限设置正确,避免目录遍历等安全问题。

<Directory "/var/www/example1.com/public_html">
    Options Indexes
    AllowOverride All
    Require local
</Directory>

日志管理

为每个虚拟主机配置单独的错误日志和访问日志,以便更好地监控和管理:

ErrorLog "/var/log/httpd/example1.com_error_log"
CustomLog "/var/log/httpd/example1.com_access_log" combined

性能优化

通过调整Apache的配置参数,如KeepAliveMaxRequestWorkers等,可以提升服务器的性能和响应速度。

<IfModule mpm_prefork_module>
    StartServers           5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers     150
    MaxConnectionsPerChild   10000
</IfModule>

小伙伴们,上文介绍了“怎么配置apache虚拟主机”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1238405.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-25 09:00
下一篇 2024-10-25 09:06

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入