作业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/data 和 https://www.openlab.com/money → 直接显示对应页面。
  3. 访问 https://www.openlab.com/student → 弹出登录框,输入 song 或 tian 及密码可访问,其他用户被拒绝。
相关推荐
未济2 天前
linux 配置环境变量
linux
傲世仙尊2 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.2 天前
进程间通信
linux
Liuqy-052 天前
Linux IO编程——静态库、动态库
linux
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog3 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
AIgorithmGEEK3 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid
琥珀色糖3 天前
SimlpeHttp
linux·服务器