@[toc]
apache 常用的功能, 虚拟主机
一: 虚拟 web 主机
在同一台服务器中运行多个 Web 站点, 其中每一个站点并不独立占用一台真正的计算机
1.1 httpd 支持的虚拟主机类型 (三种)
基于域名的类型
基于 IP 地址的虚拟主机
基于端口的虚拟主机
例如:
- www.kgc.om
- www.accp.com
IP 相同, 端口相同
IP 不同, 端口相同
IP 相同, 端口不通
二: 构建虚拟主机基于域名的实验
2.1.1 安装软件包
- [[email protected] ~]# yum install bind httpd -y
- Package 32:bind-9.11.4-9.P2.el7.x86_64 already installed and latest version
- Package httpd-2.4.6-90.el7.CentOS.x86_64 already installed and latest version
- Nothing to do
2.1.2 关闭防火墙增强服务
- [[email protected] ~]# setenforce 0
- [[email protected] ~]# systemctl stop firewalld.service
- [[email protected] ~]#
2.1.3 配置 dns
配置 dns 全局配置文件 / etc/named.conf
- [[email protected] ~]# VIM /etc/named.conf
- options {
- listen-on port 53 { any; };
- listen-on-v6 port 53 { ::1; };
- directory "/var/named";
- dump-file "/var/named/data/cache_dump.db";
- statistics-file "/var/named/data/named_stats.txt";
- memstatistics-file "/var/named/data/named_mem_stats.txt";
- recursing-file "/var/named/data/named.recursing";
- secroots-file "/var/named/data/named.secroots";
- allow-query { any; };
配置 dns 区域配置文件 / etc/named.rfc1912.zones
- [[email protected] ~]# VIM /etc/named.rfc1912.zones
- zone "kgc.com" IN {
- type master;
- file "kgc.com.zone";
- allow-update { none; };
- };
- zone "accp.com" IN {
- type master;
- file "accp.com.zone";
- allow-update { none; };
- };
修改 dns 的区域数据文件
- [[email protected] ~]# cd /var/named/
- [[email protected] named]# ls
- data dynamic named.ca named.empty named.localhost named.loopback slaves
- [[email protected] named]# cp -p named.localhost kgc.com.zone
- [[email protected] named]# VIM kgc.com.zone
- $TTL 1D
- @ IN SOA @ rname.invalid. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS @
- A 127.0.0.1
- www IN A 192.168.247.150
- ~
- [[email protected] named]# cp -p kgc.com.zone accp.com.zone
修改完毕, 启动 dns 服务
[[email protected] named]# systemctl start named
为客户机配置好 dns, 去进行测试服务是否生效
nslookup 解析成功
2.1.4 创建虚拟主机配置文件, 位置在 / etc/httpd/conf/extra/, 为了简明之意, 文件名设为 vhost.conf
- [[email protected] httpd]# ls
- conf conf.d conf.modules.d logs modules run
- [[email protected] httpd]# ls -l
- total 0
- drwxr-xr-x. 2 root root 37 Dec 12 14:45 conf
- drwxr-xr-x. 2 root root 82 Dec 12 14:45 conf.d
- drwxr-xr-x. 2 root root 146 Dec 12 14:45 conf.modules.d
- lrwxrwxrwx. 1 root root 19 Dec 12 14:45 logs -> ../../var/log/httpd
- lrwxrwxrwx. 1 root root 29 Dec 12 14:45 modules -> ../../usr/lib64/httpd/modules
- lrwxrwxrwx. 1 root root 10 Dec 12 14:45 run -> /run/httpd
- [[email protected] httpd]#
- [[email protected] httpd]# cd conf
- [[email protected] conf]# ls
- httpd.conf magic
- [[email protected] conf]# mkdir extra
- [[email protected] conf]# cd extra/
- [[email protected] extra]# ls
- [[email protected] extra]#
/etc/httpd/conf/extra/vhost.conf 文件中
指的是所有的 ip 地址同过 80 端口都可以访问
- DocumentRoot "是 web 站点目录"
- ServerName "站点服务域名"
- Errorlog "指定错误日志路径"
Customlog "指定访问日志路径" 后面跟 common 扩展工具
指定详细配置的目录名, 可以发现是 Web 站点目录的父目录
允许所有用户主机的所有访问权限 // 后面由此还会扩展更多的配置属性
- [[email protected] extra]# VIM vhost.conf
- <VirtualHost *:80>
- DocumentRoot "/var/www/html/kgc"
- ServerName www.kgc.com
- Errorlog "logs/www.kgc.com.error_log"
- Customlog "logs/www.kgc.comaccess_log" common
- <Directory "/var/www/html">
- Require all granted
- </Directory>
- </VirtualHost>
- <VirtualHost *:80>
- DocumentRoot "/var/www/html/accp"
- ServerName www.accp.com
- Errorlog "logs/www.accp.com.error_log"
- Customlog "logs/www.accp.comaccess_log" common
- <Directory "/var/www/html">
- Require all granted
- </Directory>
- </VirtualHost>
- ### 2.1.5 创建两个 Web 站点的首页, 首页文件 index.HTML 在 / var/www/HTML 下面的站点目录中
- ```bash
- [[email protected] extra]# cd /var/
- [[email protected] var]# ls
- account cache db games kerberos local log named opt run target www
- adm crash empty gopher lib lock mail nis preserve spool tmp yp
- [[email protected] var]# cd www
- [[email protected] www]# ls
- CGI-bin HTML
- [[email protected] www]# cd HTML
- [[email protected] HTML]# ls
- [[email protected] HTML]# mkdir kgc accp
- [[email protected] HTML]# ls
- accp kgc
- [[email protected] HTML]# echo "this is accp web"> accp/index.HTML
- [[email protected] HTML]# echo "this is kgc web"> kgc/index.HTML
- [[email protected] HTML]# tree accp kgc
- accp
└── index.HTML
kgc
└── index.HTML
- 0 directories, 2 files
- [[email protected] HTML]#
2.1.7 重点: 需要把 extra 的路径加入到主配置文件中, 启动时才可以识别
- [[email protected] HTML]# VIM /etc/httpd/conf/httpd.conf
- 354 Include conf/extra/vhost.conf
2.1.8 开启服务, 查看服务端口
- [[email protected] HTML]# systemctl start httpd
- [[email protected] HTML]# netstat -natp | grep httpd
- tcp6 0 0 :::80 :::* LISTEN 79262/httpd
2.1.9 在客户机验证
三: 构建虚拟主机 ---- 基于端口的实验
以上个实验为基础, 进行端口不通的虚拟主机的配置
3.1.1 修改虚拟 Web 主机的配置文件, 增加一项 8080 端口的参数, 为了区别站点, 需要把站点文件名修改作以区分, 不会覆盖
- [[email protected] HTML]# VIM /etc/httpd/conf/extra/vhost.conf
- // 复制修改增加
- 11 <VirtualHost *:8080>
- 12 DocumentRoot "/var/www/html/kgc02"
- 13 ServerName www.kgc02.com
- 14 Errorlog "logs/www.kgc02.com.error_log"
- 15 Customlog "logs/www.kgc02.comaccess_log" common
- 16 <Directory "/var/www/html">
- 17 Require all granted
- 18 </Directory>
- 19 </VirtualHost>
- [[email protected] HTML]# ls
- accp kgc
- [[email protected] HTML]# cp -p kgc kgc02
- cp: omitting directory 'kgc'
- [[email protected] HTML]# mkdir kgc02
- [[email protected] HTML]# echo "this is web kgc02">kgc02/index.HTML
- [[email protected] HTML]#
3.1.2 增加了端口, 也就增加了监听地址, 监听地址的修改在主配置文件 / etc/httpd/conf/httpd/conf 中
- [[email protected] HTML]# VIM /etc/httpd/conf/httpd.conf
- 41 Listen 192.168.247.150:80
- 42 Listen 192.168.247.150:8080
- 43 #Listen 80
3.1.3 重启服务, 验证接口是否开启
- [[email protected] HTML]# systemctl restart httpd
- [[email protected] HTML]# netstat -napt | grep httpd
- tcp 0 0 192.168.247.150:8080 0.0.0.0:* LISTEN 91814/httpd
- tcp 0 0 192.168.247.150:80 0.0.0.0:* LISTEN 91814/httpd
3.1.4 查看验证, IP 地址一样, 端口不一样
四: 构建虚拟主机 ---- 基于 IP 不同的实验
4.1.1 添加网卡, 创建几个不同的 IP 地址的虚拟 Web 主机就需要增加几个网卡
- [[email protected] HTML]# ifconfig
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- .NET 192.168.247.150 netmask 255.255.255.0 broadcast 192.168.247.255
- ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- .NET 192.168.247.158 netmask 255.255.255.0 broadcast 192.168.247.255
验证网卡是否联网
4.1.2 修改虚拟 Web 主机的配置文件
备注: 当服务器中使用不同 IP 的虚拟 Web 主机时,/etc/httpd/conf/extra/vhost.conf 文件中的 IP 地址需要具象到一个固定的 IP 地址, 不可以再用 * 通配符号, 以免混淆
- [[email protected] HTML]# VIM /etc/httpd/conf/extra/vhost.conf
- <VirtualHost 192.168.247.158:80>
- DocumentRoot "/var/www/html/accpaccp"
- ServerName www.accpaccp.com
- Errorlog "logs/www.accpaccp.com.error_log"
- Customlog "logs/www.accpaccp.comaccess_log" common
- <Directory "/var/www/html">
- Require all granted
- </Directory>
- </VirtualHost>
4.1.3 创建新建的虚拟 Web 站点目录
- [[email protected] HTML]# ls
- accp accp02 kgc kgc02
- [[email protected] HTML]# mkdir accpaccp
- [[email protected] HTML]# echo "this is 192.168.247.158"> accpaccp/index.HTML
4.1.4 修改主配置文件, 增加监听地址
- [[email protected] HTML]# VIM /etc/httpd/conf/httpd.conf
- Listen 192.168.247.158:80
4.1.5 重启 httpd 服务
- [[email protected] HTML]# systemctl restart httpd
- [[email protected] HTML]# netstat -natp | grep httpd
- tcp 0 0 192.168.247.150:8080 0.0.0.0:* LISTEN 123662/httpd
- tcp 0 0 192.168.247.158:80 0.0.0.0:* LISTEN 123662/httpd
- tcp 0 0 192.168.247.150:80 0.0.0.0:* LISTEN 123662/httpd
4.1.6 客户机验证
##### 因为没有配置 dns 解析, 所以需要输入 IP 地址去进入网站, 接下来增加这个 ip 地址的域名解析
4.1.7 修改 dns 配置文件
/etc/named.rfc1912.zones 文件
- [[email protected] HTML]# VIM /etc/named.rfc1912.zones
- zone "accpaccp.com" IN {
- type master;
- file "accpaccp.com.zone";
- allow-update { none; };
- };
/var/named / 目录, 创建对应的区域数据文件
- [[email protected] HTML]# cd /var/named
- [[email protected] named]# ls
- accp.com.zone data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
- [[email protected] named]# cp -p accp.com.zone accpaccp.com.zone
- [[email protected] named]# VIM accpaccp.com.zone
- $TTL 1D
- @ IN SOA @ rname.invalid. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS @
- A 127.0.0.1
- www IN A 192.168.247.158
4.1.8 重启域名解析服务
[[email protected] named]# systemctl restart named
五: 创建站点内的超链接
5.1 修改首页
- [[email protected] named]# VIM /var/www/HTML/accpaccp/index.HTML
- <HTML>
- <head>
- <title>hello world</title>
- </head>
- <body>
- <h1><a href="http://www.accp.com/index.html">hello world</a></h1>
- </body>
- </HTML>
5.2 客户机测试, 当然, 还需要在重启 HTTPD 服务
[[email protected] named]# systemctl restart httpd
来源: http://www.bubuko.com/infodetail-3329219.html