当前位置: 首页 > 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.dtcms.com/a/292178.html

相关文章:

  • MySQL(151)什么是MySQL的二级索引?
  • 【Java SE】Object类
  • python小工具:测内网服务器网速和延迟
  • MySQL 8.0 中 LIMIT 优化新特性
  • 探索飞算JavaAI:AI赋能Java开发的新范式
  • haproxy的负载均衡集群搭建
  • 自研能管项目开发界面
  • 小白成长之路-部署Zabbix7
  • web登录页面
  • spring boot 异步线程@Async 传递 threadLocal数据
  • find / -name “ssl.h“ 2>/dev/null
  • Tailwind CSS快速上手 Tailwind CSS的安装、配置、使用
  • OpenCV快速入门之CV宝典
  • 青龙面板常用拉库命令和常用依赖
  • HashMap和Hashtable的区别
  • 7.22 下雨天了怎么办~~~
  • Vue底层换成啥了?如何更新DOM的?
  • solidity从入门到精通 第二章:Solidity初相见
  • 高速AC耦合电容挨得很近,PCB串扰会不会很大……
  • vue2使用v-viewer实现自动预览
  • 能协调控制器的硬件与软件组成及解决方案
  • 网易视觉算法面试30问全景精解
  • 【node】npm包本地开发与调试
  • 【自动化运维神器Ansible】Ansible介绍与架构详解
  • Events
  • UE5 UI scaleBox 缩放框
  • 基于开源AI智能名片链动2+1模式与S2B2C商城小程序的淘宝新店引流与好评优化策略研究
  • 现在希望用git将本地文件crawler目录下的文件更新到远程仓库指定crawler目录下,命名相同的文件本地文件将其覆盖
  • Elastic Cloud 简化版:GCP Marketplace
  • 【LeetCode数据结构】栈和队列的应用——用队列实现栈问题、用栈实现队列问题详解