在 Linux 环境下搭建 OpenLab Web 网站并实现 HTTPS 和访问控制

实验要求

综合练习:请给openlab搭建web网站
​ 网站需求:
​ 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!!
​ 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[www.openlab.com/student](http://www.openlab.com/student) 网站访问学生信息,[www.openlab.com/data](http://www.openlab.com/data)网站访问教学资料
​ [www.openlab.com/money网站访问缴费网站](http://www.openlab.com/money网站访问缴费网站)。
​ 3.要求
​ (1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。
​ (2)访问缴费网站实现数据加密基于https访问。

注意点

在 Nginx 中,默认的 Web 根目录是 /usr/share/nginx/html

  • /usr/share/nginx/html/index.html:欢迎页面。
  • /usr/share/nginx/html/student.html:学生信息页面。
  • /usr/share/nginx/html/data.html:教学资料页面。
  • /usr/share/nginx/html/money.html:缴费页面。

实验过程

[root@node ~]# yum install nginx -y
[root@node ~]# systemctl start nginx
[root@node ~]# systemctl enable nginx
[root@node ~]# cd /etc/nginx/
[root@node nginx]# tree
.
├── conf.d
├── default.d
├── fastcgi.conf
├── fastcgi.conf.default
├── fastcgi_params
├── fastcgi_params.default
├── koi-utf
├── koi-win
├── mime.types
├── mime.types.default
├── nginx.conf
├── nginx.conf.default
├── scgi_params
├── scgi_params.default
├── uwsgi_params
├── uwsgi_params.default
└── win-utf2 directories, 15 files
[root@node nginx]# cd /usr/share/nginx/html
[root@node html]# vim index.html 
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Welcome to OpenLab!</title>
</head>
<body><h1>Welcome to OpenLab!!!</h1>
</body>
</html>[root@node html]# vim data.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Teaching Materials</title>
</head>
<body><h1>Teaching Materials</h1><p>Resources and notes for the course.</p>
</body>
</html>[root@node html]# vim money.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Payment Portal</title>
</head>
<body><h1>Payment Portal</h1><p>Please make your payment here.</p>
</body>
</html>[root@node html]# yum install httpd-tools -y[root@node html]# htpasswd -c /etc/nginx/.htpasswd song
New password: 
Re-type new password: 
Adding password for user song
[root@node html]# htpasswd /etc/nginx/.htpasswd tian
New password: 
Re-type new password: 
Adding password for user tian[root@node ~]# vim /etc/nginx/nginx.conf
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;access_log  /var/log/nginx/access.log;error_log   /var/log/nginx/error.log;server {listen       80;server_name  www.openlab.com;location / {root   /usr/share/nginx/html;index  index.html index.htm;}# 学生信息页面(要求 Basic Auth)location /student {auth_basic "Restricted Access";  # 显示的提示信息auth_basic_user_file /etc/nginx/.htpasswd;  # 指向用户密码文件# 其他配置}# 教学资料页面(对所有用户开放)location /data {root   /usr/share/nginx/html/data;index  index.html index.htm;}# 缴费页面(强制使用 HTTPS)location /money {root   /usr/share/nginx/html/money;index  index.html index.htm;return 301 https://$server_name$request_uri;}}# SSL 配置(可选)server {listen       443 ssl;server_name  www.openlab.com;ssl_certificate      /etc/ssl/certs/openlab.crt;ssl_certificate_key  /etc/ssl/private/openlab.key;location / {root   /usr/share/nginx/html;index  index.html index.htm;}# 学生信息页面(要求 Basic Auth)location /student {auth_basic "Restricted Access";auth_basic_user_file /etc/nginx/.htpasswd;}location /data {root   /usr/share/nginx/html/data;index  index.html index.htm;}location /money {root   /usr/share/nginx/html/money;index  index.html index.htm;}}
}[root@node ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful[root@node ~]# systemctl restart nginx[root@node ~]# vim  /usr/share/nginx/html/index.html[root@node ~]# vim /etc/hosts[root@node ~]# ping www.openlab.com
PING www.openlab.com (192.168.133.20) 56(84) 字节的数据。
64 字节,来自 www.openlab.com (192.168.133.20): icmp_seq=1 ttl=64 时间=0.028 毫秒
64 字节,来自 www.openlab.com (192.168.133.20): icmp_seq=2 ttl=64 时间=0.031 毫秒
64 字节,来自 www.openlab.com (192.168.133.20): icmp_seq=3 ttl=64 时间=0.028 毫秒

主界面 

student

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/33751.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发利器:IDEA的安装与使用(下)

文章目录 8. 快捷键的使用8.1 常用快捷键8.2 查看快捷键8.3 自定义快捷键8.4 使用其它平台快捷键 9. IDEA断点调试(Debug)9.1 为什么需要Debug9.2 Debug的步骤9.3 多种Debug情况介绍9.3.1 行断点9.3.2 方法断点9.3.3 字段断点9.3.4 条件断点9.3.5 异常断点9.3.6 线程调试9.3.7 …

非对称任意进制转换器(安卓)

除了正常进制转换&#xff0c;还可以输入、输出使用不同的数字符号&#xff0c;达成对数值进行加密的效果 点我下载APK安装包 使用unity开发。新建一个c#代码文件&#xff0c;把代码覆盖进去&#xff0c;再把代码文件添加给main camera即可。 using System.Collections; usin…

神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型

(一) pytorch 官网内置的网络模型 图像处理&#xff1a; Models and pre-trained weights — Torchvision 0.20 documentation (二) CIFAR10数据集的分类网络模型&#xff08;仅前向传播&#xff09;&#xff1a; 下方的网络模型图片有误&#xff0c;已做修改&#xff0c;具…

linux 系列服务器 高并发下ulimit优化文档

系统输入 ulimit -a 结果如下 解除 Linux 系统的最大进程数 要解除或提高 Linux 系统的最大进程数&#xff0c;可以修改 ulimit 设置和 /etc/security/limits.conf 文件中的限制。 临时修改 ulimit 设置 可以使用 ulimit 命令来查看和修改当前会话的最大进程数&#xff1a; 查…

Elasticsearch数据迁移(快照)

1. 数据条件 一台原始es服务器&#xff08;192.168.xx.xx&#xff09;&#xff0c;数据迁移后的目标服务器&#xff08;10.2.xx.xx&#xff09;。 2台服务器所处环境&#xff1a; centos7操作系统&#xff0c; elasticsearch-7.3.0。 2. 为原始es服务器数据创建快照 修改elas…

基于 SpringBoot 构建校园失物招领智能平台:优化校园失物处理流程

4系统设计 4.1系统概要设计 本文通过B/S结构(Browser/Server,浏览器/服务器结构)开发的该校园失物招领系统&#xff0c;B/S结构的优点很多&#xff0c;例如&#xff1a;开发容易、强的共享性、便于维护等&#xff0c;只要有网络&#xff0c;用户可以随时随地进行使用。 系统工作…

图解SSL/TLS 建立加密通道的过程

众所周知&#xff0c;HTTPS 是 HTTP 安全版&#xff0c;HTTP 的数据以明文形式传输&#xff0c;而 HTTPS 使用 SSL/TLS 协议对数据进行加密&#xff0c;确保数据在传输过程中的安全。 那么&#xff0c;HTTPS 是如何做到数据加密的呢&#xff1f;这就需要了解 SSL/TLS 协议了。 …

HTTP协议图--HTTP 工作过程

HTTP请求响应模型 HTTP通信机制是在一次完整的 HTTP 通信过程中&#xff0c;客户端与服务器之间将完成下列7个步骤&#xff1a; 建立 TCP 连接 在HTTP工作开始之前&#xff0c;客户端首先要通过网络与服务器建立连接&#xff0c;该连接是通过 TCP 来完成的&#xff0c;该协议…

BurpSuite工具-Proxy代理用法(抓包、改包、放包)

一、Burp Suite 项目管理 二、Proxy&#xff08;代理抓包模块&#xff09; 1. 简要说明 1.1. Intercept&#xff08;拦截&#xff09; 1.2. HTTP History&#xff08;HTTP 历史&#xff09; 1.3. WebSockets History&#xff08;WebSocket 历史&#xff09; 1.4. Options…

前端测试框架 jasmine 的使用

最近的项目在使用AngulaJs,对JS代码的测试问题就摆在了面前。通过对比我们选择了 Karma jasmine ,使用 Jasmine做单元测试 &#xff0c;Karma 自动化完成&#xff0c;当然了如果使用 Karma jasmine 前提是必须安装 Nodejs。 安装好 Nodejs &#xff0c;使用 npm 安装好必要…

Blender均匀放缩模型

解决办法&#xff1a; 首先选中模型&#xff0c;按下“s”键&#xff0c;如下图所示&#xff0c;此时模型根据鼠标的移动放缩 或者在按下“s”后输入数值&#xff0c;再按回车键Enter&#xff0c;模型会根据你该数值进行均匀放缩 指定放大2倍结果——

TCP/IP 协议图--计算机网络体系结构分层

计算机网络体系结构分层 计算机网络体系结构分层 不难看出&#xff0c;TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”&#xff0c;而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”

hive 行转列

行转列的常规做法是&#xff0c;group bysum(if())【或count(if())】 建表: CREATE TABLE table2 (year INT,month INT,amount DOUBLE );INSERT INTO table2 (year, month, amount) VALUES(1991, 2, 1.2),(1991, 3, 1.3),(1991, 4, 1.4),(1992, 1, 2.1),(1992, 2, 2.2),(1992…

5G Multicast/Broadcast Services(MBS)相关的Other SI都有哪些?

系统消息分为Minimum SI 和other SI&#xff0c;其中Minimum SI 包括MIB和SIB1&#xff0c;Minimum SI包含初始访问所需的基本信息和获取任何其他 SI 的信息。 而随着3GPP引入的技术越来越多&#xff0c;例如sidelink&#xff0c;NTN&#xff0c;MBS broadcast/multicast以及A…

6. 一分钟读懂“抽象工厂模式”

6.1 模式介绍 书接上文&#xff0c;工厂方法模式只能搞定单一产品族&#xff0c;遇到需要生产多个产品族时就歇菜了。于是&#xff0c;在需求的“花式鞭策”下&#xff0c;程序员们再次绷紧脑细胞&#xff0c;创造出了更强大的抽象工厂模式&#xff0c;让工厂一次性打包多个产品…

Ignis如何将Tokenization解决方案应用于RWA和实体经济

随着区块链技术的发展&#xff0c;代币化&#xff08;Tokenization&#xff09;逐渐成为连接数字经济与实体经济的重要桥梁。尤其是RWA&#xff08;真实世界资产&#xff09;的概念&#xff0c;近年来成为金融行业的热议话题。Ignis作为Jelurida公司推出的公链平台&#xff0c;…

sql删除冗余数据

工作或面试中经常能遇见一种场景题&#xff1a;删除冗余的数据&#xff0c;以下是举例介绍相应的解决办法。 举例&#xff1a; 表结构&#xff1a; 解法1&#xff1a;子查询 获取相同数据中id更小的数据项&#xff0c;再将id不属于其中的数据删除。-- 注意&#xff1a;mysql中…

mac 安装python3和配置环境变量

mac 安装python3和配置环境变量 前言怎样选择python3的版本python3的安装1、去官网下载安装包2、下载完成后直接解压,检查安装是否成功 前言 在学习python的第一步就是安装它和配置他的环境变量&#xff0c;那么选择哪个版本的python你可曾知道&#xff0c;下面就讲解怎样选择…

Springboot美食分享平台

私信我获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 Springboot美食分享平台 一、 绪论 1.1 研究意义 当今社会作为一个飞速的发展社会&#xff0c;网络已经完全渗入人们的生活&#xff0c; 网络信息已成为传播的第一大媒介&#xff0c; 可以毫不夸张…

iview upload clearFiles清除回显视图

iview upload 上传完文件之后清除内容&#xff0c;打开会回显视图&#xff0c;清除不掉 关闭弹框时主动清除回显内容即可this.$refs.uploads.clearFiles() <FormItem label"上传附件:" :label-width"formNameWidth"><Upload action"/fms/ap…