作业11.9

1. 安装依赖工具

复制代码
# 安装Nginx
yum install -y nginx httpd-tools
systemctl start nginx
systemctl enable nginx

# 关闭防火墙(测试环境,生产环境需配置规则)
systemctl stop firewalld
systemctl disable firewalld

2. 生成 SSL 证书(用于 HTTPS)

bash

复制代码
# 创建证书目录
mkdir -p /etc/nginx/ssl

# 生成自签名证书(按提示输入信息,Common Name填www.openlab.com)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/nginx/ssl/openlab.key \
  -out /etc/nginx/ssl/openlab.crt

3. 创建网站目录及页面文件

bash

复制代码
# 创建目录结构
mkdir -p /var/www/openlab/{student,data,money}

# 编写根页面内容(www.openlab.com)
echo "<h1>welcome to openlab!!!</h1>" > /var/www/openlab/index.html

# 编写学生信息页面(/student)
echo "<h1>学生信息页面</h1>" > /var/www/openlab/student/index.html

# 编写教学资料页面(/data)
echo "<h1>教学资料页面</h1>" > /var/www/openlab/data/index.html

# 编写缴费网站页面(/money)
echo "<h1>缴费网站页面</h1>" > /var/www/openlab/money/index.html

# 设置目录权限
chown -R nginx:nginx /var/www/openlab
chmod -R 755 /var/www/openlab

4. 创建用户认证(限制 student 访问)

bash

复制代码
# 创建认证文件目录
mkdir -p /etc/nginx/auth

# 添加用户song和tian(执行后输入密码,例如123456)
htpasswd -c /etc/nginx/auth/student_auth song  # 首次创建用-c
htpasswd /etc/nginx/auth/student_auth tian     # 后续用户无需-c

# 设置认证文件权限
chmod 600 /etc/nginx/auth/student_auth
chown nginx:nginx /etc/nginx/auth/student_auth

5. 配置 Nginx 虚拟主机

bash

复制代码
# 创建配置文件
cat > /etc/nginx/conf.d/openlab.conf << 'EOF'
server {
    listen 80;
    server_name www.openlab.com;
    return 301 https://$host$request_uri;  # HTTP强制跳转HTTPS
}

server {
    listen 443 ssl;
    server_name www.openlab.com;

    ssl_certificate /etc/nginx/ssl/openlab.crt;
    ssl_certificate_key /etc/nginx/ssl/openlab.key;

    root /var/www/openlab;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /student {
        auth_basic "请输入用户名密码";
        auth_basic_user_file /etc/nginx/auth/student_auth;
        try_files $uri $uri/ /student/index.html;
    }

    location /data {
        try_files $uri $uri/ /data/index.html;
    }

    location /money {
        try_files $uri $uri/ /money/index.html;
    }
}
EOF

6. 验证配置并生效

bash

复制代码
# 检查Nginx配置是否正确
nginx -t

# 重启Nginx使配置生效
systemctl restart nginx

7. 本地 hosts 解析(客户端操作)

在测试的电脑上修改 hosts 文件(需管理员权限):

  • Windows :编辑 C:\Windows\System32\drivers\etc\hosts,添加:

    plaintext

    复制代码
    服务器IP www.openlab.com
  • Linux/macOS :编辑 /etc/hosts,添加同上内容。

测试验证

  1. 访问 http://www.openlab.com → 自动跳转至 https://www.openlab.com,显示 welcome to openlab!!!
  2. 访问 https://www.openlab.com/datahttps://www.openlab.com/money → 直接显示对应页面。
  3. 访问 https://www.openlab.com/student → 弹出登录框,输入 songtian 及密码可访问,其他用户被拒绝。
相关推荐
树℡独6 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
嵩山小老虎7 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模7 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324477 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Configure-Handler8 小时前
buildroot System configuration
java·服务器·数据库
津津有味道8 小时前
易语言TCP服务端接收刷卡数据并向客户端读卡器发送指令
服务器·网络协议·tcp·易语言
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.9 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
Genie cloud9 小时前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
一只自律的鸡9 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)9 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考