Apache httpd
- httpd是Apache基金会的HTTP服务器项目:HTTP Server project
- Apache httpd的安装详见:Linux源码编译安装apache httpd2.4.48
- https://blog.csdn.net/timonium/article/details/117326413
Apache httpd虚拟主机
- httpd 支持在一台物理主机上添加多个虚拟主机VirtualHost
- 通过添加多个个虚拟主机可以实现同服务器多实例网站
网站的唯一标识:
- IP相同,但端口不同
- IP不同,但端口均为默认端口
- FQDN不同, IP和端口都相同
多虚拟主机有三种实现方案:
- 基于ip:为每个虚拟主机准备至少一个ip地址
- 基于port:为每个虚拟主机使用至少一个独立的port
- 基于FQDN:为每个虚拟主机使用至少一个FQDN,请求报文中首部
注意:httpd 2.4版本中,基于FQDN的虚拟主机不再需要NameVirutalHost指令
虚拟主机的基本配置方法:
- 在配置文件中添加VirtualHost
<VirtualHost IP:PORT>
ServerName FQDN
DocumentRoot "/path"
</VirtualHost>
- 上述配置应该存放在独立的配置文件中
- 配套设置
ServerAlias:虚拟主机的别名;可多次使用
ErrorLog: 错误日志
CustomLog:访问日志
<Directory "/path"> </Directory>
实现多虚拟主机VirtualHost
创建虚拟主机存放文件夹
[ -d /webDB ] || mkdir -pv /webDB/{logs,vhost,vhostslist}
[root@C8-192 ~]# [ -d /webDB ] || mkdir -pv /webDB/{vhost,vhostslist}
mkdir: created directory '/logs'
mkdir: created directory '/webDB'
mkdir: created directory '/webDB/vhost'
mkdir: created directory '/webDB/vhostslist'
- 赋权
chown -R apache.apache /webDB
创建测试网页
mkdir -pv /webDB/vhosts/website{
1..3}
for i in {
1..3};do echo "I am host $i" > /webDB/vhosts/website$i/index.html done
- 示例
[root@C8-192 ~]# mkdir -pv /webDB/vhosts/website{1..3}
mkdir: created directory '/webDB/vhosts'
mkdir: created directory '/webDB/vhosts/website1'
mkdir: created directory '/webDB/vhosts/website2'
mkdir: created directory '/webDB/vhosts/website3'
[root@C8-192 ~]# for i in {1..3};do echo "I am host $i" > /webDB/vhosts/website$i/index.html
> done
[root@C8-192 ~]# cat /webDB/vhosts/website1/index.html
I am host 1
[root@C8-192 ~]