当前位置: 首页 > news >正文

在 Linux 系统中基于 Nginx 搭建 openlab 网站及子页面

在 Linux 系统中基于 Nginx 搭建 openlab 网站及子页面

一、项目背景

本文将详细介绍如何在 Linux 系统中使用 Nginx 搭建一个符合特定需求的网站,包括主网站和多个子页面,并实现访问控制和数据加密等功能。网站需求如下:

  1. 基于域名www.openlab.com可以访问网站内容为welcome to openlab!!!
  2. 创建三个子界面,分别显示学生信息、教学资料和缴费网站,对应访问路径为www.openlab.com/studentwww.openlab.com/datawww.openlab.com/money
  3. 学生信息网站仅允许songtian两人访问,其他用户无访问权限
  4. 缴费网站需基于 https 实现数据加密访问

二、环境准备

  1. 恢复系统快照,关闭防火墙及 SELinux 等安全软件,避免对后续操作产生干扰
  2. 安装 Nginx 软件
[root@server ~]# yum install nginx -y

​ 3.配置 DNS 映射:在 Windows 系统的C:\Windows\System32\drivers\etc\hosts文件中添加以下内容

192.168.48.130  www.openlab.com

三、搭建主网站[www.openlab.com]

  1. 创建网页目录及主页内容
[root@server ~]# mkdir -p /www/openlab
[root@server ~]# echo 'welcome to openlab!!!' > /www/openlab/index.html

​ 2.配置 Nginx 主配置文件

[root@server ~]# vim /etc/nginx/nginx.conf  

在配置文件中添加以下 server 块:

server {listen       80;server_name  www.openlab.com;root         /www/openlab;  
}

​ 3.启动 Nginx 服务并测试

[root@server ~]# systemctl start nginx

在 Windows 端打开浏览器,输入www.openlab.com,若能看到welcome to openlab!!!则主网站搭建成功。

四、创建教学资料子网站[www.openlab.com/data]

  1. 创建目录及测试页面
[root@server ~]# mkdir /www/openlab/data
[root@server ~]# echo 'data' > /www/openlab/data/index.html

​ 2.配置 Nginx,在之前的 server 块中添加 location 配置

[root@server ~]# vim /etc/nginx/nginx.conf  

修改后的 server 块如下:

server {listen       80;server_name  www.openlab.com;root         /www/openlab;# 教学资料子页面配置location  /data {alias  /www/openlab/data;index  index.html  index.htm;}
}

​ 3.重启 Nginx 服务并测试

[root@server ~]# systemctl restart nginx

在 Windows 端浏览器输入www.openlab.com/data,若能看到data则配置成功。

五、创建学生信息子网站[www.openlab.com/student]

  1. 创建目录及测试页面
[root@server ~]# mkdir /www/openlab/student
[root@server ~]# echo ' student' > /www/openlab/student/index.html

​ 2.创建用户并配置密码认证

  • 创建系统用户(可选,此处仅为统一用户名)
[root@server ~]# useradd song
[root@server ~]# passwd song    # 密码123456
[root@server ~]# useradd tian
[root@server ~]# passwd tian    # 密码654321
  • 使用 htpasswd 创建 Nginx 认证用户
[root@server ~]# htpasswd -c /etc/nginx/passwd song  # 密码123456
[root@server ~]# htpasswd  /etc/nginx/passwd tian    # 密码654321

​ 3.配置 Nginx 访问控制,在 server 块中添加以下内容

[root@server ~]# vim /etc/nginx.conf  

添加的配置:

location  /student {alias  /www/openlab/student;index  index.html  index.htm;auth_basic   "请输入用户名和密码";auth_basic_user_file   /etc/nginx/passwd;
}

​ 4.重启 Nginx 服务并测试

[root@server ~]# systemctl restart nginx

在 Windows 端浏览器输入www.openlab.com/student,此时会弹出认证窗口,输入正确的用户名(song 或 tian)和密码即可访问,使用其他用户名则无法访问。

六、创建缴费子网站[www.openlab.com/money](https 加密)

  1. 创建目录及测试页面
[root@server ~]# mkdir /www/openlab/money
[root@server ~]# echo 'money' > /www/openlab/money/index.html

​ 2.生成 SSL 证书和密钥

# 生成私钥
[root@server ~]# openssl  genrsa  -aes128  2048 > /etc/nginx/money.key
# 输入加密私钥的密码123456并确认# 制作证书
[root@server ~]# openssl  req  -utf8  -new  -key  /etc/nginx/money.key  -x509  -days  365  -out  /etc/nginx/money.crt
# 输入私钥密码123456,然后按提示填写证书信息:
# Country Name (2 letter code) [AU]:86
# State or Province Name (full name) [Some-State]:shanxi
# Locality Name (eg, city) []:xi'an
# Organization Name (eg, company) [Internet Widgits Pty Ltd]:openlab
# Organizational Unit Name (eg, section) []:RHCE
# Common Name (e.g. server FQDN or YOUR name) []:server
# Email Address []:andy@qq.com# 移除私钥密码(避免Nginx启动时需要手动输入密码)
[root@server ~]# cd  /etc/nginx
[root@server nginx]# cp  money.key  money.key.org
[root@server nginx]# openssl rsa -in money.key.org -out money.key
# 输入私钥密码123456

​ 3.配置 Nginx 的 https 服务,添加新的 server 块

[root@server nginx]# vim  /etc/nginx/nginx.conf

添加的配置:

server {listen       443 ssl http2;server_name  www.openlab.com;location /money {alias  /www/openlab/money;index  index.html  index.htm;}ssl_certificate       "/etc/nginx/money.crt";ssl_certificate_key   "/etc/nginx/money.key";
}

​ 4.重启 Nginx 服务并测试

[root@server nginx]# systemctl restart nginx           

在 Windows 端浏览器输入https://www.openlab.com/money测试(首次访问可能会有证书警告,选择继续访问即可)。

七、总结及成果展示

通过以上步骤,我们成功搭建了 openlab 的主网站和三个子页面,实现了:

  1. 基于www.openlab.com访问主网站

    在这里插入图片描述

  2. 基于www.openlab.com/data访问教学资料

    在这里插入图片描述

  3. 基于www.openlab.com/student访问学生信息(并限制仅 song 和 tian 访问)

    在这里插入图片描述
    在这里插入图片描述

  4. 基于https://www.openlab.com/money访问缴费网站(实现 https 加密)

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/1170523.html

相关文章:

  • 浅谈——C++和C#差异
  • 从 COLMAP 到 3D Gaussian Splatting
  • 【面试】Redis分布式ID与锁的底层博弈:高并发下的陷阱与破局之道
  • 机器人氩弧焊保护气降成本的方法
  • kafka主题管理详解 - kafka-topics.sh
  • 苹果app应用ipa文件程序开发后如何运行到苹果iOS真机上测试?
  • IntelliJ IDEA (2024.3.1)优雅导入 Maven 项目的两种方式详解
  • 【小学】小学学习资料合集(不定时更新,有需要及时保存,避免失效)
  • LNMP平台部署
  • 设计模式——责任链模式
  • 欧式装修颜色要怎么搭配?
  • Linux研学-MySQL安装
  • C# 类 封装 属性 练习题
  • 暑假算法训练.6
  • [LLM]Synthetic Visual Genome
  • pluto example, heat-1d优化分析
  • ClearML库详解:从实验跟踪到模型部署的全流程管理
  • KafkaMQ 日志采集最佳实践
  • Hadoop调度器深度解析:FairScheduler与CapacityScheduler的优化策略
  • Navicat 远程连接SQLlite数据库
  • 【锁】MySQL中有哪几种锁?
  • 标记语言---XML
  • 《Webpack热更新瓶颈突破:全链路优化指南》
  • Java函数指南:从Function到BiFunction的深度解析
  • 从ZooKeeper到KRaft:Kafka架构演进与无ZooKeeper部署指南
  • React 面试题库
  • Redis 5.0中的 Stream是什么?
  • Vue开发常用库(含npm安装命令)
  • Linux中信号认识及处理和硬件中断与软中断的讲解
  • 设计模式七:抽象工厂模式(Abstract Factory Pattern)