Web服务器-RHCE

embedded/2024/11/20 16:29:43/

一,web服务器简介

(1)什么是www

www是world wide web的缩写,也就是全球信息广播的意思。通常说的上网就是使用www来查询用户 所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方 式将信息以Internet传递到世界各处去。

  1. www所用的协议: 浏览器怎样向web服务器请求数据以及服务器怎样把文档传送给浏览器呢?这就是 由http协议来定义的,(Hyper Text Transport Protocol,HTTP,超文本传输协议)。
  2. www服务器需要提供可让客户端浏览的平台。目前最主流的Web服务器是Apache、Microsoft的 Internet信息服务器(Internet Information Services,IIS)和unix nginx。
  3. 服务器所提供的最主要数据是超文本标记语言(Hyper Text Markup Language,HTML)、多媒体 文件(图片、影像、声音、文字等,都属于多媒体或称为超媒体),HTML只是一些纯文本数据,通过所谓 的标记来规范所要显示的数据格式。
  4. 客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。那 么著名的浏览器就有内建在Windows操作系统内的IE浏览器了,还有Firefox浏览器和Google的 chrome浏览器。
(2)网址及HTTP简介 

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

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

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

(1)终端客户在web浏览器地址栏输入访问地址 http://www.ceshi.com:80/index.html

(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浏览器显示访问的网站内容到屏幕上。 

 二、web服务器基本配置

 [root@localhost ~]# dnf install nginx -y[root@localhost ~]# nginx -v[root@localhost ~]# nginx -V[root@localhost ~]# rpm -ql nginx[root@localhost httpd]# tree /etc/nginx[root@localhost ~]# tree /etc/nginx//etc/nginx/├── conf.d     #子配置文件目录
├── default.d  
├── fastcgi.conf├── fastcgi.conf.default├── fastcgi_params  #用以翻译nginx的变量供php识别
├── fastcgi_params.default├── koi-utf├── koi-win├── mime.types   #用以配置支持的媒体文件类型
├── mime.types.default├── nginx.conf    #主配置文件
├── nginx.conf.default├── scgi_params├── scgi_params.default├── uwsgi_params  #用以配置nginx的变量供python识别
├── uwsgi_params.default└── win-utf[root@localhost ~]# tree /usr/share/nginx/html/  #默认的nginx网站根目录
[root@localhost ~]# tree /var/log/nginx/  #nginx的日志文件所在目录

 三,搭建静态网站——基于https协议的静态网站

(1)https简介

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之间。

(2)https协议加密所使用的算法

HASH是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就 是散列值。Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段 特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的 密码存储、信息完整性校验等。

常见的HASH算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、 HMACSHA1。

(3)HTTPS的安全通信工作流程可大致分为三个阶段:

  1. 认证服务器
  2. 协商会话密钥
  3. 加密通讯

(4)https网站配置 

#https功能由ngx_http_ssl_module模块提供
[rootlocalhost ~]# nmcli connection modify ens33 +ipv4.addresses  
192.168.168.156/24[root@localhost ~]# nmcli connection up ens33[root@localhost ~]# mkdir -pv /www/https/[root@localhost ~]# echo https > /www/https/index.html[root@localhost conf.d]# cd /etc/pki/tls/certs/#key是私钥文件
[root@localhost certs]# openssl  genrsa -out https.key#crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持
有人的公钥,以及签署者的签名等信息
[root@localhost certs]# openssl  req  -utf8 -new -key https.key -x509 -days 
100 -out https.crt[[root@localhost ~]# cat /etc/nginx/conf.d/test_https.confserver {# listen       80;listen 192.168.168.156:443 ssl;root /www/https;ssl_certificate /etc/pki/tls/certs/https.crt;ssl_certificate_key /etc/pki/tls/certs/https.key;location / {}}[root@localhost ~]# systemctl restart nginx[root@localhost ~]# curl --insecure https://192.168.168.156https[root@localhost ~]# curl -k https://192.168.168.156https

(4) 搭建动态网站配置

 [root@localhost nginx]# nmcli connection modify ens33 +ipv4.addresses  
192.168.168.157/24[root@localhost nginx]# nmcli connection up ens33[root@localhost ~]# dnf install php php-fpm -y[root@localhost ~]# systemctl restart nginx php-fpm[root@ntp-server ~]# echo  "<?php phpinfo(); ?>" >  
/usr/share/nginx/html/index.php#使用浏览器访问


http://www.ppmy.cn/embedded/139124.html

相关文章

【AI+教育】一些记录@2024.11.16

《万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题》 万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题关于 ChatGPT 铺天盖地的信息让人无所适从。本文则试图提炼出五个关键问题&#xff1a;如何理解这次范式突破&#xff0c;未来能达到的技术天花板&#xff0c;行…

PostgreSQL 函数与存储过程及调用

PostgreSQL 随着云服务的盛行&#xff0c;越发被广泛的应用&#xff0c;免费开源且有丰富的特性支持&#xff0c;加上性能也很不错&#xff0c;因而备受青睐。PostgreSQL 的函数与存储过程区别并不太大&#xff0c;不像某些数据库的函数与存储过程必须是无副作用或有副作用&…

gunicorn 和 uvicorn部署fastapi 或者flask

gunicorn 和 uvicorn一起部署fastapi 或者flask 安装需要的包后台代码启动可能遇到的问题 安装需要的包 pip install gunicorn uvicorn greenlet eventlet gevent后台代码 Server.py 文件中有app 变量 启动 # http 服务 timeout 单位s gunicorn -k uvicorn.workers.UvicornW…

【国产MCU系列】-GD32F470-直接存储器访问控制器(DMA)

直接存储器访问控制器(DMA) 文章目录 直接存储器访问控制器(DMA)1、DMA介绍2、DMA寄存器列表3、DMA的传输模式与传输操作3.1 DMA的传输模式3.2 DMA的传输操作3.3 传输完成与软件清除4、DMA的中断4.1 中断标志4.2 中断异常4.3 中断错误5、固件库的DMA相关API6、DMA示例每个嵌…

pycharm64位python3.12 x32位安装pandas出错安装不了

最近由于要使用只有python32位才能使用的库&#xff0c;于是创建了一个python3.12 x32位环境的项目&#xff0c;在布置环境的过程中发现这pandas安装不了&#xff0c;网上找了一大圈也没看到过几个像样的解决问题的答案&#xff0c;大家如果在python3.12 x32位环境下安装pandas…

基于YOLOv8深度学习的医学影像阿尔兹海默症检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)

阿尔茨海默症&#xff08;Alzheimer’s disease&#xff09;是一种常见的神经退行性疾病&#xff0c;主要表现为记忆丧失、认知能力下降以及行为和人格改变。随着全球老龄化问题的加剧&#xff0c;阿尔茨海默症的发病率也在逐年上升&#xff0c;给患者及其家庭带来了巨大的经济…

安宝特分享 | 如何利用AR技术革新医疗实践:从远程急救到多学科协作

AR技术在国内外医院的应用 在现代医疗环境中&#xff0c;患者面临的挑战依然严峻&#xff1a;看病难、看病远、看病急。这些问题不仅影响了患者的治疗效果&#xff0c;也让医务工作者倍感压力。幸运的是&#xff0c;随着增强现实&#xff08;AR&#xff09;技术的发展&#xf…

前端全屏显示解决方案分享

本文分享的内容是前端全屏显示的解决方案&#xff0c;来源于103项目中的需求。主要是将开发过程中遇到问题&#xff0c;解决问题的思路分享出来&#xff0c;对于后面遇到相同的业务场景时可以借鉴一下&#xff0c;提高我们的开发效率&#xff0c;少走一些弯路。 需求背景 用户…