虚拟主机(Nginx)
主机IP:192.168.11.100
1. 域名模拟(为了方便测试)
修改hosts文件
vim /etc/hosts192.168.11.100 www.web01.cn web01.cn192.168.11.100 www.web02.cn web02.cn
2. 配置基于域名的虚拟主机
# 安装Nginxdnf install nginx -y# 建立测试页面mkdir /wwwroot/{web01,web01} -pecho '<h1>Web01</h1>' /wwwroot/web01/index.htmlecho '<h1>Web02</h1>' /wwwroot/web02/index.html# 开启服务systemctl enable --now nginx# 防火墙放行firewall-cmd --add-service=http --permanentfirewall-cmd --reload# selinuxsemanage fcontext -a -t httpd_sys_content_t '/wwwroot(/.*)?'restorecon -Rv /wwwroot/# 访问测试curl www.web01.cn# 配置虚拟主机配置文件vim /etc/nginx/conf.d/web01.conf# 内容server {listen 80;server_name www.web01.cn;location / {root /wwwroot/web01;}}vim /etc/nginx/conf.d/web01.conf# 内容server {listen 80;server_name www.web02.cn;location / {root /wwwroot/web02;}}# 测试nginx配置文件nginx -t# 重载nginxsystemctl reload nginx# 访问测试curl www.web01.cncurl www.web02.cn
3. 配置基于端口的虚拟主机
# 新建目录
mkdir /wwwroot/private -p
# 创建访问测试文件
echo '<h1>private</h1>' > /wwwroot/private/index.html
# 编写配置文件
vim /etc/nginx/conf.d/private.conf
# 内容
server {
listen 83;
server_name www.web01.cn
location / {
root /wwwroot/private;
}
}
# 重载nginx
systemctl reload nginx
# 查看监听端口
ss -ltnp
# 防火墙放行
firewall-cmd --add-port=83/tcp --permanent
firewall-cmd --reload
# selinux
semanage port -a -t http_port_t -p tcp 83
# 查看selinux放行端口
semanage port -l
semanage port -l | grep http
# 访问测试
curl www.web01.cn:83
4. 配置身份认证
# 编写配置文件
vim /etc/nginx/conf.d/private.conf
# 内容
server {
listen 83;
server_name www.web01.cn
location / {
root /wwwroot/private;
auth_basic "auth site";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
# 安装htpasswd工具
dnf provides htpasswd
dnf install httpd-tools -y
# 创建测试用户
htpasswd -c -b /etc/nginx/.htpasswd user01 123
# 测试身份认证
curl www.web01.cn:83
curl www.web01.cn:83 -u user01:123
