基本环境
底层: Windows 11 x64
虚拟化层:VMWare Workstation 17.0.2
虚拟化兼容性:ESXi 6.7
虚拟硬件:
CPU: 4 Core
RAM: 16 GB
HDD: 128 GB SCSI
NetWork: NAT
操作系统版本: CentOS 7.9.2207 Mininal 无更新、无升级内核
无系统更新
无内核升级
关闭 SELinux
配置 NTP 时间同步
安装 Open VM Tools
美化 CLI
基本定义
# 基于密码文件的访问控制:为提高站点访问安全性,可以为站点访问加以控制,而基于密码访问控制即通过创建用户验证文件,使用用户名、密码的方式控制站点访问权限的解决方案
# 基于密码文件的访问控制区别与基于数据库保存用户验证信息的访问控制
# 用户验证文件可以存储多个用户信息
场景设计
# 此处,基本设置沿用 《网页服务-Nginx - 虚拟主机 - 基于 IP》内容,因此下面不再创建 新的 网站目录和文件
# 默认网站 数据目录
/data/www/
# 创建两个 网站数据目录
Site 1 站点 /data/www/site1
# 设定 网站
Site 1 站点 /data/www/site1 访问路径为 http://{IP 2}/ 访问控制:基于 密码文件 访问控制,创建 用户 FanXian 密码 123
安装 Httpd Tools 模块
# 安装 httpd tools 模块,以创建 用户认证文件
yum install -y httpd-tools
创建 用户验证文件
# 创建 用户验证文件 存储目录
# 存储目录尽量与站点无关,让站点访问用户无法访问
mkdir -p /data/manager/passwd
# 进入 用户验证文件 目录
cd /data/manager/passwd
# 创建密码文件 -c 表示初始创建 文件前的. 表示隐藏文件
htpasswd -c .{filename} {Web 访问用户名}
输入密码
再次输入密码
# 静默方式 创建密码文件 -b 表示 非交互
htpasswd -bc .{filename} {Web 访问用户名} {密码}
# 添加一个用户
htpasswd -b .{filename} {Web 访问用户名} {密码}
# 删除一个用户
htpasswd -D .{filename} {Web 访问用户名}
# 创建 Web 访问用户 范闲 ,密码 123 (区分大小写)
htpasswd -c .pdfile FanXian
编辑 虚拟主机 配置文件
# 方法 1 : 创建 虚拟主机配置文件
nano /etc/nginx/conf.d/vt-host.conf
# 修改 如下内容
# {
# 基于 IP 虚拟 主机 Site 1
# IP地址 172.16.26.131
# 访问路径 /data/www/site1
# 站点基于 密码文件 访问控制
# 密码文件 路径 /data/manager/passwd/.pdfile
server {
listen 172.16.26.131;
root /data/www/site1;
location / {
index index.html index.htm;
auth_basic "请输入密码:";
auth_basic_user_file /data/manager/passwd/.pdfile;
}
}
# }
# 方法 2 : 命令行直接创建 虚拟主机 配置文件
sudo cat <<EOF > /etc/nginx/conf.d/vt-host.conf
# 基于 IP 虚拟 主机 Site 1
# IP地址 172.16.26.131
# 访问路径 /data/www/site1
# 站点基于 密码文件 访问控制
# 密码文件 路径 /data/manager/passwd/.pdfile
server {
listen 172.16.26.131;
root /data/www/site1;
location / {
index index.html index.htm;
auth_basic "请输入密码:";
auth_basic_user_file /data/manager/passwd/.pdfile;
}
}
EOF
重新启动 Nginx 服务
# 重新启动 Nginx 服务
systemctl restart nginx.service
访问地址
# 基于 IP 虚拟主机 访问地址
http://{IP 2}/
本文暂时没有评论,来添加一个吧(●'◡'●)