作业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 及密码可访问,其他用户被拒绝。
相关推荐
阿豪学编程2 小时前
环境变量与程序地址空间
linux·运维·windows
秃秃秃秃哇2 小时前
X5的相机同步方案
linux
岚天start3 小时前
解决方案—K8S集群的日志按天并按照命名空间分类定时同步到日志服务器
服务器·docker·kubernetes·shell·日志备份
CaracalTiger3 小时前
本地部署 Stable Diffusion3.5!cpolar让远程访问很简单!
java·linux·运维·开发语言·python·微信·stable diffusion
ai_xiaogui3 小时前
AIStarter跨平台完工:Win/Mac/Linux一键部署Stable Diffusion
linux·macos·stable diffusion·aistarter·kritaai·跨平台部署
顾安r3 小时前
11.10 脚本算法 五子棋 「重要」
服务器·前端·javascript·游戏·flask
梁萌4 小时前
linux中使用docker安装MySQL
linux·运维·docker·容器·mysql安装
SelectDB4 小时前
冷查第一,再登榜首!Apache Doris 3.1 全面刷新 JSONBench 性能纪录
数据库·apache
搬砖的小码农_Sky4 小时前
Ubuntu Desktop Linux 文件和文件夹操作命令详解
linux·运维·ubuntu