Apache配置与应用
Apache安装请看上篇博客:https://blog.csdn.net/weixin_62453238/article/details/122399412我这里就不多说了。
一、构建虚拟web主机
虚拟web主机指的是在同一台服务器中运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为"虚拟"web主机。通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点。
httpd服务支持的虚拟主机类型包括三种:基于域名、基于IP地址和基于端口
1、基于域名
为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
例如,www.lisi.com和 www.zhangsan.com站点的IP地址都是192.168.163.11。这是使用最为普遍的虚拟web主机类型。
2、基于IP地址
为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。
3、基于端口
这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。
二、基于域名的虚拟主机
1、为虚拟主机提供域名解析
方法一:部署DNS域名解析服务器,用于提供域名解析
方法二:在/etc/hosts 文件中临时配置域名与IP地址的映射关系
echo "192.168.163.11 www.lisi.com" >> /etc/hosts
echo "192.168.163.11 www.zhangsan.com" >> /etc/hosts
2、为虚拟主机准备网页文档
mkdir -p /var/www/html/lisi
mkdir -p /var/www/html/zhangsan
echo "<h1>www.lisi.com</h1>" > /var/www/html/lisi/index.html
echo "<h1>www.zhangsan.com</h1>" > /var/www/html/zhangsan/index.html
、添加虚拟主机配置
不同的安装方法编辑的文件路径不一样,这里要注意
源码编译安装的虚拟主机配置文件路径
/usr/local/httpd/conf/extra/httpd-vhosts.conf
RPM或YUM安装的虚拟主机配置文件路径
/etc/httpd/conf.d/vhosts. conf
我这里用的是源码编译安装,因为编译安装可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大。示例如下:
#源码编译安装的虚拟主机配置文件路径
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#虚拟站点区域模板
<VirtualHost *:80>
#设置管理员邮箱,这行可注释掉
ServerAdmin webmaster@dummy-host.example.com
#设置网站根目录
DocumentRoot "/usr/local/httpd/docs/dummy-host.example.com"
#设置Web站点的完整域名(主机名+域名)
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
#设置错误日志文件的路径
ErrorLog "logs/dummy-host.example.com-error_log"
#设置访问日志文件的路径
CustomLog "logs/dummy-host.example.com-access_log" common
#结束标签
</VirtualHost>
例如:
<VirtualHost 192.168.163.11:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/var/www/html/lisi"
ServerName www.lisi.com
# ServerAlias www.dummy-host.example.com
ErrorLog "logs/lisi.com-error_log"
CustomLog "logs/lisi.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.163.11:80>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/html/zhangsan"
ServerName www.zhangsan.com
ErrorLog "logs/zhangsan.com-error_log"
CustomLog "logs/zhangsan.com-access_log" common
</VirtualHost>
4、设置访问控制
这里其实可以和上面的一起编写,为什么分开写