本次实验使用虚拟主机的方式搭建web服务器
一、 环境准备
1、 实验拓扑
2、 设备说明
操作系统 | 说明 |
centos | web服务器 |
win10 | 测试客户端 |
3、 IP地址规划
操作系统 | IP 1 | IP 2 |
centos-stream | 172.16.10.1/24 | 172.16.20.1/24 |
win10 | 172.16.10.2/24 | 172.16.20.2/24 |
3.1 配置web服务器IP地址
[root@web_server ~]# nmcli connection add con-name eth1_ip ifname eth1 ipv4.addresses 172.16.10.1/24 +ipv4.addresses 172.16.20.1/24 ipv4.method manual type ethernet
[root@web_server ~]# nmcli connection up eth1_ip
# 附带一个ansible脚本
---
- name: 给网卡配置多个IP地址
hosts: XXX
vars:
network_connections:
- name: eth1_ip
state: up
type: ethernet
interface_name: eth1
ip:
address:
- 172.16.10.1/24
- 172.16.20.1/24
tasks:
- name: 配置IP地址
include_role:
name: rhel-system-roles.network
3.2 配置win10客户端IP地址
4、虚拟主机规划
IP+端口 | 域名 |
172.16.10.1:80 | mmx01.test.com |
172.16.10.1:8033 | mmx02.test.com |
172.16.20.1:80 | mmx03.test.com |
172.16.10.1:8034 | mmx04.test.com |
二、 实验
1、安装软件包
[root@web_server ~]# yum -y install httpd
2、 放行防火墙
[root@web_server ~]# firewall-cmd --add-service=http --permanent
[root@web_server ~]# firewall-cmd --reload
3、 虚拟主机(端口号)
通过访问不同主机的ip地址:端口号,实现虚拟主机的配置
3.1 编辑子配置文件
我使用两个默认的80端口和8033端口和8034端口用于创建虚拟主机
[root@web_server /etc/httpd/conf.d]# cat VirtualHost_test.conf
<VirtualHost 172.16.10.1:80>
DocumentRoot /home/mmx/site/www/site1/
<Directory /home/mmx/site/www/site1/>
Require all granted
</Directory>
</Virtualhost>
<VirtualHost 172.16.20.1:80>
DocumentRoot /home/mmx/site/www/site2/
<Directory /home/mmx/site/www/site2/>
Require all granted
</Directory>
</Virtualhost>
Listen 8033
<VirtualHost 172.16.10.1:8033>
DocumentRoot /home/mmx/site/www/site3/
<Directory /home/mmx/site/www/site3/>
Require all granted
</Directory>
</Virtualhost>
Listen 8034
<VirtualHost 172.16.20.1:8034>
DocumentRoot /home/mmx/site/www/site4/
<Directory /home/mmx/site/www/site4/>
Require all granted
</Directory>
</Virtualhost>
# 默认值
<VirtualHost *:80>
DocumentRoot /home/mmx/site/www/site6/
<Directory /home/mmx/site/www/site6/>
Require all granted
</Directory>
</Virtualhost>
3.2 放行防火墙端口
放行对应的8033,8034端口
[root@web_server /etc/httpd/conf.d]# firewall-cmd --add-port=8033-8034/tcp --permanent
[root@web_server /etc/httpd/conf.d]# firewall-cmd --reload
3.3 创建site目录
[root@web_server ~]# mkdir /home/mmx/site/www
3.4 设置selinux
[root@web_server ~]# semanage fcontext -a -t httpd_sys_content_t /home/mmx/site/www/
[root@web_server /etc/httpd/conf.d]# for i in {1..6}; do semanage fcontext -a -t httpd_sys_content_t /home/mmx/site/www/site$i; done
[root@web_server /etc/httpd/conf.d]# for i in {1..6}; do semanage fcontext -a -t httpd_sys_content_t /home/mmx/site/www/site$i/index.html; done
[root@web_server ~]# restorecon -Rv /home/mmx/site/www
[root@web_server ~]# semanage port -a -t http_port_t -p tcp 8033-8034
[root@web_server ~]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 8033-8034, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
3.4 创建站点文件夹,编辑index.html首页
[root@web_server ~]# mkdir /home/mmx/site/www/site{1..6}
[root@web_server ~]# for i in {1..6}; do echo "this is site$i" > /home/mmx/site/www/site$i/index.html; done
# 查看index.html是否创建完成
[root@web_server ~]# cat /home/mmx/site/site1/index.html
this is site1
[root@web_server ~]# cat /home/mmx/site/site2/index.html
this is site2
[root@web_server ~]# cat /home/mmx/site/site3/index.html
this is site3
[root@web_server ~]# cat /home/mmx/site/site4/index.html
this is site4
...
3.5 启动httpd服务
[root@web_server ~]# systemctl enable httpd --now
# 检查服务状况
[root@web_server ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-02-02 01:31:09 CST; 1min 8s ago
Docs: man:httpd.service(8)
Main PID: 1850 (httpd)
Status: "Total requests: 2; Idle/Busy workers 100/0;Requests/sec: 0.0339; Bytes served/sec: 23>
Tasks: 213 (limit: 23656)
Memory: 38.0M
CGroup: /system.slice/httpd.service
├─1850 /usr/sbin/httpd -DFOREGROUND
├─1852 /usr/sbin/httpd -DFOREGROUND
├─1853 /usr/sbin/httpd -DFOREGROUND
├─1854 /usr/sbin/httpd -DFOREGROUND
└─1855 /usr/sbin/httpd -DFOREGROUND
Feb 02 01:31:08 web_server systemd[1]: Starting The Apache HTTP Server...
Feb 02 01:31:09 web_server httpd[1850]: AH00558: httpd: Could not reliably determine the server's >
Feb 02 01:31:09 web_server systemd[1]: Started The Apache HTTP Server.
Feb 02 01:31:13 web_server httpd[1850]: Server configured, listening on: port 8034, port 8033, por>
3.6 在win10上进行测试
4、 虚拟主机(域名)
1、 编辑虚拟机子配置文件
使用mmx0(1~4).test.com作为虚拟主机的访问域名
[root@web_server /etc/httpd/conf.d]# cat VirtualHost_test.conf
<VirtualHost 172.16.10.1:80>
DocumentRoot /home/mmx/site/www/site1/
ServerName mmx01.test.com
<Directory /home/mmx/site/www/site1/>
Require all granted
</Directory>
</Virtualhost>
<VirtualHost 172.16.20.1:80>
DocumentRoot /home/mmx/site/www/site5/
ServerName mmx02.test.com
<Directory /home/mmx/site/www/site5/>
Require all granted
</Directory>
</Virtualhost>
<VirtualHost 172.16.20.1:80>
DocumentRoot /home/mmx/site/www/site2/
ServerName mmx03.test.com
<Directory /home/mmx/site/www/site2/>
Require all granted
</Directory>
</Virtualhost>
Listen 8033
<VirtualHost 172.16.10.1:8033>
DocumentRoot /home/mmx/site/www/site3/
<Directory /home/mmx/site/www/site3/>
Require all granted
</Directory>
</Virtualhost>
Listen 8034
<VirtualHost 172.16.20.1:8034>
DocumentRoot /home/mmx/site/www/site4/
<Directory /home/mmx/site/www/site4/>
Require all granted
</Directory>
</Virtualhost>
# 默认值
<VirtualHost *:80>
DocumentRoot /home/mmx/site/www/site6/
<Directory /home/mmx/site/www/site6/>
Require all granted
</Directory>
</Virtualhost>
2、 编辑hosts文件
C:\Windows\System32\drivers\etc/hosts.