使用nginx搭建网页

一、实验要求

网站需求:

1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!!

2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息,www.openlab.com/data网站访问教学资料,网站访问缴费网站(http://www.openlab.com/money网站访问缴费网站)。

3.要求

(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。

(2)访问缴费网站实现数据加密基于https访问。

二、知识点总结

1、web服务器简介

(1)什么是www

www是world wide web的缩写,也就是全球信息广播的意思。通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方式将信息以Internet传递到世界各处去。与其他服务器类似,当你连接上www网站,该网站肯定会提供一些数据,而你的客户端则必须要使用可以解析这些数据的软件来处理,那就是浏览器。www服务器与客户端浏览器之间的连接图。

(2)网址及HTTP简介

web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页。

  • 网址格式:<协议>://<主机或主机名>[:port]/<目录资源,路径>

    • 浏览器常支持的协议有:http、https、ftp等。

    • 主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了。

    • 端口号(port):http为80,https为443 (IANA:互联网数字分配机构)

      • 0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口(只有管理员有权限启用并让进程监听)

      • 1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/TCP

      • 41952-60000:客户端程序随机使用的端口,动态端口,或私有端口

  • http请求方法:在http通信中,每个http请求报文都包含一个方法,用以告诉web服务器端需要执行哪些具体的动作,这些动作包括:获取指定web页面、提交内容到服务器、删除服务器上资源文件等。

  • 状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

    状态码范围作用描述
    100 - 199用于指定客户端相应的某些动作
    200 - 299用于表示请求成功
    300 - 399用于己经移动的文件,并且常被包含在定位头信息中指定新的地址系信息
    400 - 499用于指出客户端的错误
    500 - 599用于指出服务端的错误
  • MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)最初是为了解决在 不同的电子邮件系统之间搬移报文时存在的问题。后来http也支持了这个功能,用它来描述数据并 标记不同的数据内容类型。 当web服务器响应http请求时,会为每一个http对象数据加一个MIME类型。当web浏览器获 取到服务器返回的对象时,会去查看相关的MIME类型,并进行相应的处理。 MIME类型存在于HTTP响应报文的响应头部信息里,它是一种文本标记,表示一种主要的对象 类型和一个特定的子类型。常见的MIME类型:

    MIME类型文件类型
    text/htmlhtml、htm、shtml文本类型
    text/csscss文本类型
    text/xmlxml文本类型
    image/gifgif图像类型
    image/jpegjpeg、jpg图像类型
    application/javascriptjs文本类型
    text/plaintxt文本类型
    application/jsonjson文本类型
    video/mp4mp4视频类型
    video/quicktimemov视频类型
    video/x-flvflv视频类型
    video/x-ms-wmvwmv视频类型
    video/x-msvideoavi视频类

(3)http协议请求的工作流程

(1)终端客户在web浏览器地址栏输入访问地址域名售卖 (2)web浏览器请求DNS服务器把域名www.ceshi.com解析成web服务器的IP地址 (3)web浏览器将端口号(默认是80)从访问地址(URL)中解析出来 (4)web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接 (5)建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文 (6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。 (7)web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上。

Apache: http服务器是一个模块化的服务器,可以运行几乎所有广泛使用的计算机平台上。属于应用服务器。Apache支持模块多,性能稳定,apache本身是静态解析,但也可以通过扩展脚本、模块等支持动态页面。(apache可以支持phpcgiperl,但是使用java的话需要tomcat在apache后台支持,将java请求由apache转给tomcat处理)

tomcat:应用(java)服务器,他只是一个servlet容器,可以认为是apache的扩展,但是可以独立用于apache运行。

nginx:相对一Apache占用更少的内存及资源一个轻量级服务器,是一个高性能的http和反向代理服务器,同时也是一个IMPA/POP3/SMTP代理服务器。

2.https简介

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。

SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)。

SSL协议分为两层:

  • SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。

  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器 2)加密数据以防止数据中途被窃取 3)维护数据的完整性,确保数据在传输过程中不被改变

1.请求连接,tcp三次握手 确认版本

2.秘钥套件的协商,开始身份认证(非对称算法)证书验证 协商对称算法[客户端验证服务器身份]

3.建立ssl 会话链接

4.加密会话交互

5.断开会话链接

TLS完整的通信流程

第一阶:段客户端端申请建立https连接

第二阶段:客户端和服务器确认加密版本,加密套件

1.浏览器向服务器发送一个clientHello的报文

客户端产生一个随机数Random(ClientRandom)

会话ID:第一次肯定为空

Cipher suite: 加密套件(秘钥交换,完整性校验算法,对称机密算法 ,算法列表)

2.服务端向客户端回复一个ServerHello(确认使用的TLS的版本,以及加密套件)

Random随机数:服务产生的(ServerRandom)

SessionID: 0

Cipher suite:确认使用加密套件

Compression method: null 不压缩

Extension: 扩展字段

第三阶段:证书发送验证 (客户端验证证书取出公钥,用公钥加密生成的对称秘钥发送个服务器通知改变加密信息传递)

3.服务器向客户端发送Certificate (服务器的身份证,证书由第三方权威机构颁发)

4.服务器向客户端发送serverkey Exchange(通过和客户端协商的密码算法套件发送Pubkey结合HD算法生成Premastersecret(最终加密的会话秘钥))

5.certificate Request 可选报文(认证可以是单向也可以是双向,一般都是单向客户端验证服务端身份,服务端验证客户端客户端也需要发送证书)

6.ServerHello Done 服务端发送握手信息完毕

7.客户端回复服务器报文Certificate 如果有第五阶段则提交客户端的证书进行认证

8.ClientKey Exchange 秘钥交换信息和步骤4类似

9.ChangeCiper Spec: 通知消息(消息改变通知,及后面消息要进行加密了)

10.Encrypted Handshake Messges 校验数据包的完整性MD5(hash)将数据包的值进行散列最后和服务端的散列值进行比较一致意味着沟通过程中没有第三者的介入

第四阶段:服务收到消息,用私钥解密取,确认对称秘钥通知客户端ssl通道建立完成

11.服务器向客户端回包:NewSession Ticket(建立会话票据,提供会话票据)

12.change cipher Spec: 改变密码通知加密发送信息

13.encrypted Handshake message (Finished)

第五阶段:客户端和服务端可以通过加密通道开始数据通信

Application Data(http)客户端和服务端可以通过加密通道开始数据通信

第六阶段:客户端断开连接

三、实验思路

首先主机上需要安装nginx服务以及http服务
1、在nginx的主配置文件‘vim /etc/nginx/nginx.conf’

 主配置文件中由于有include /etc/nginx/conf.d/*.conf;

他会将/etc/nginx/conf.d/目录下的所有以.conf结尾的子配置文件导入到主配置文件中加载,

所以只需在/etc/nginx/conf.d/目录下创建子配置文件配置即可。

2、创建/www/openlab/ 主目录存放网页文件

以及创建主目录下的子目录/student/       /data/   子界面网页文件 按照要求单独在/www 放money的子网页文件

3、创建子配置文件进行编写内容

4、安装htppd-tools,配置用户认证,并在子配置文件进行编写

5、创建https所需的密钥和数据证书,并在子配置文件对其路径进行编写

四、实验步骤

安装服务并启动这里关闭selinux和防火墙

[root@server ~]# yum install nginx http -y
[root@server ~]# systemctl start nginx
systemctl stop firewalld        # 关闭防火墙
setenforce 0                    # 关闭selinux

创建文件

[root@server ~]# cat /www/
money/   openlab/ 
[root@server ~]# cat /www/openlab/
data/       index.html  student/   

配置文件主页文件地址

[root@server ~]# vim /etc/nginx/conf.d/openlab.conf 
server {
        listen 192.168.1.14:80;
        server_name www.openlab.com;
        root    /www/openlab;
        location / {
                index index.html;
        }
}

写入主页内容

[root@server ~]# echo welcome to openlab > /www/openlab/index.html 

查看主页信息

[root@server ~]# curl www.openlab.com
welcome to openlab

编辑子界面信息

server {
        listen 192.168.1.14:80;         --> 要监听服务器的IP地址及端口号
        server_name www.openlab.com;     服务器名称
        root    /www/openlab;            主页存放路径
#学生信息
        location /student {      #location 定义用户请求的url,并返回相应的资源文件
                index index.html;          索引文件的文件名
                alias /www/openlab/student;
                auth_basic on;
                auth_basic_user_file /etc/nginx/users;
        }
#教学资料
        location /data {
                index index.html;
                alias /www/openlab/data;
        }
}


#缴费网站
server {
        listen 192.168.1.14:443 ssl;
        server_name www.openlab.com;
        root    /www/money/;
        ssl_certificate "/etc/pki/tls/certs/openlab.crt";
        ssl_certificate_key "/etc/pki/tls/private/openlab.key";
        location /money {
                index index.html;
                alias /www/money/;
        }
}

写入子文件内容

[root@server ~]# echo this id data > /www/openlab/data/index.html
[root@server ~]# echo this id money > /www/money/index.html
[root@server ~]# echo this id student  > /www/openlab/student/index.html

查看子界面信息(其他两个也是一样的方法)

[root@server ~]# echo this id data > /www/openlab/data/

按照要求

1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。

   添加用户认证

[root@openEuler ~]# htpasswd -c /etc/nginx/conf.d/users song        # 第一次创建加-c创建文件
New password:                                # 输入密码用户
Re-type new password:                         # 再次输入确认
Adding password for user song
[root@openEuler ~]# htpasswd /etc/nginx/conf.d/users tian            # 第二次不加-c,否则覆盖上一次信息
New password: 
Re-type new password: 
Adding password for user tian


结果

配置子配置文件,添加用户认证信息及认证的目录文件
在学生信息处添加两行配置

2)访问缴费网站实现数据加密基于https访问。

创建秘钥和证书

重启服务并验证

因为www.openlab.com未备案注册,想要以域名访问需在windows或者linux的hosts文件添加映射关系,
windows:修改hosts文件方法


使用管理员打开记事本文件

最后一行添加映射

或者linux:修改hosts


vim /etc/hosts,在最后一行添加映射关系

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

element中Table表格控件单选、多选功能进一步优化

目录 一、代码实现1、 父组件2、子组件&#xff08;弹框&#xff09; 二、效果图 一、代码实现 1、 父组件 <template><div><!-- 用户选择嵌套弹框 --><el-dialog :close-on-click-modal"false" :close-on-press-escape"false" tit…

OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换

前言 在现代工业自动化领域&#xff0c;OPC UA&#xff08;开放性生产控制和统一架构&#xff09;是一种广泛应用的通信协议。本文将以通俗易懂的方式解释OPC UA的含义和作用&#xff0c;帮助读者更好地理解这一概念。 一、OPC UA的定义 OPC UA全称为“开放性生产控制和统一…

bgp--大AS分小AS

最后效果:r1能ping通r8,r4路由表有r1-r8环回,r4bgp路由表已优化 代码; [r1] ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 12.1.1.1 0.0.0.0 bgp 64512 router-id 1.1.1.1 confederation id …

湖(岛屿)

from book&#xff1a;挑战程序设计竞赛

亿尚网:时尚电商告别红利时代回归常态未来将何去何从?

随着互联网技术的不断发展和普及&#xff0c;时尚电商行业在过去的十年里迅猛的增长&#xff0c;经历了前所未有的繁荣。然而近年来这个行业似乎已经迎来了一个转折点。曾经的高速增长和巨大利润已经逐渐消失&#xff0c;取而代之的是日益激烈的竞争和微薄的利润空间。这一切的…

TPU编程竞赛系列|第八届集创赛“算能杯“报名开启!

近日&#xff0c;第八届全国大学生集成电路创新创业大赛正式开幕&#xff0c;"算能杯"以 基于TPU处理器的边缘计算系统设计 为赛题&#xff0c;围绕算能提供的多款TPU硬件&#xff0c;展开软硬件协同设计&#xff0c;创新开发算法及探索新兴应用。我们诚邀全国高校的…

三极管这个功能比“放大”还常用?

同学们大家好&#xff0c;今天我们继续学习杨欣的《电子设计从零开始》&#xff0c;这本书从基本原理出发&#xff0c;知识点遍及无线电通讯、仪器设计、三极管电路、集成电路、传感器、数字电路基础、单片机及应用实例&#xff0c;可以说是全面系统地介绍了电子设计所需的知识…

杜卡迪Panigale v4 SP2、Street Fighter v4 SP正式发布,购车送GP观赛

最新款杜卡迪的Panigale v4 SP2、Street Fighter v4 SP国内正式上市&#xff0c;售价分别是382500元和310500元&#xff0c;Panigale售价比老款降低了2.55万元&#xff0c;而街霸的SP版则是国内首次上市。 SP版一直都是杜卡迪的限量款&#xff0c;标榜着高性能、高配置&#xf…

运放【之噪声】

电流噪声和电压噪声 我们一般评估噪声&#xff0c;还看对输出端噪声电压的贡献&#xff0c;因为电流乘以电阻等于电压&#xff0c;因此&#xff0c;最终的噪声大小还跟电路中电阻的取值有很大关系。显然&#xff0c;电阻越大&#xff0c;那么噪声电压就越大。反之电阻越小&…

HarmonyOS4.0系列——07、自定义组件的生命周期、路由以及路由传参

自定义组件的生命周期 允许在生命周期函数中使用 Promise 和异步回调函数&#xff0c;比如网络资源获取&#xff0c;定时器设置等&#xff1b; 页面生命周期 即被Entry 装饰的组件生命周期&#xff0c;提供以下生命周期接口&#xff1a; onPageShow 页面加载时触发&#xff…

烟火检测AI边缘计算智能分析网关V4如何通过ssh进行服务器远程运维

智能分析网关V4是一款高性能、低功耗的AI边缘计算硬件设备&#xff0c;它采用了BM1684芯片&#xff0c;集成高性能8核ARM A53&#xff0c;主频高达2.3GHz&#xff0c;并且INT8峰值算力高达17.6Tops&#xff0c;FB32高精度算力达到2.2T&#xff0c;每个摄像头可同时配置3种算法&…

【LeetCode热题100】【子串】滑动窗口最大值

题目 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], …

像操作本地文件一样操作linux文件 centos7环境下samba共享服务搭建详细教程

1.安装dnf yum -y install dnf 2.安装samba dnf install samba -y 3.配置 3.1创建并设置用户信息 #创建用户 useradd -M -s /sbin/nologin samba echo 123|passwd --stdin samba mkdir /home/samba chown -R samba:samba /home/samba smbpasswd -a samba smaba设置密码示…

搜索引擎优化:利用Python爬虫实现排名提升

什么是搜索引擎优化&#xff08;SEO&#xff09; 搜索引擎优化&#xff08;SEO&#xff09;是通过优化网站内容和结构&#xff0c;提高网站在搜索引擎中的排名&#xff0c;从而增加网站流量和曝光度的技术和方法。SEO的目标是使网站在搜索引擎结果页面中获得更高这个过程包括吸…

【Git】实习使用记录

Git 高频命令、版本回退、分支操作、文件修改删除、撤销、标签、远程仓库推送、拉取 https://blog.csdn.net/wohu1104/article/details/105601657 浏览器可以访问github仓库&#xff0c;但是使用git就用不了 https://blog.csdn.net/m0_63230155/article/details/132070860 可…

Elasticsearch 分布式架构剖析及扩展性优化

1. 背景 Elasticsearch 是一个实时的分布式搜索分析引擎&#xff0c;简称 ES。一个集群由多个节点组成&#xff0c;节点的角色可以根据用户的使用场景自由配置&#xff0c;集群可以以节点为单位自由扩缩容&#xff0c;数据以索引、分片的形式散列在各个节点上。本文介绍 ES 分布…

给网赚从业者的几点建议

网上赚钱这件事&#xff0c;就是一层窗户纸&#xff0c;不捅破就是秘密&#xff0c;是玄乎&#xff0c;捅破了就是常识&#xff0c;并没有大家想象的那么神奇。 然而很多人&#xff0c;即使窗户纸已经被捅破&#xff0c;赚钱项目和套路赤裸裸的摆在他面前&#xff0c;他却是无…

树形+分页+表格

一.树形结构的增加和删除 1.树形结构的增加 传入上一层的pid 2.树形结构的删除 传入当前项的id 3.列表刷新 每做一次增加和删除都需要调用,获取列表的接口来刷新列表里面的数据,并且关闭弹窗 二.表格的使用 这些element-ui官方网站都可以进行查询。 这里面需要注意的点…

NFT Insider #117:The Sandbox 与韩剧《还魂》合作推出人物化身

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto&#xff08;https://twitter.com/beep_crypto&#xff09;联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…

Oracle行转列函数,列转行函数

Oracle行转列函数&#xff0c;列转行函数 Oracle 可以通过PIVOT,UNPIVOT,分解一行里面的值为多个列,及来合并多个列为一行。 PIVOT PIVOT是用于将行数据转换为列数据的查询操作(类似数据透视表)。通过使用PIVOT&#xff0c;您可以按照特定的列值将数据进行汇总&#xff0c;并将…
最新文章