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

Linux系统服务——【web,http协议,apache服务和nginx服务】(sixteen day)

一、web基础以及http协议

1、web基本概念和常识

前端开发一般用uniapp.

1、Web:为用户提供的一种在互联网上浏览信息的服务,Web 服务是动态的、可交互的、跨平台的和图形化的。
2、Web 服务为用户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。
3、Web 应用开发也经过了几代技术的不断发展,目前Web 开发依然是最重要的开发内容之一。Web 基础的技术包括超文本标记语言(HTML)和 HTTP 协议,HTML是一种呈现数据的方式(给人看的),而 HTTP 则是一组通信的标准(语法、语义、时许),可以简单的理解为 HTTP 携带 HTML。

————————————————————————————————————————

1、web 应用:网站(广义上的PC,手机app)
2、浏览器(Browser):也称用户代理,web客户端,主要有IEEdge、Chrome、Firefox、腾讯浏览器,360浏览器等

3、web服务器(webserver):也称HTTP服务器(HTTPserver),要有 Nginx、Apache、Tomcat 等。

2、网站基础

(1)域名

域名是⼀个IP地址的“⾯具” ,⽬的是便于记忆和访问⼀个或⼀ 组服务器的地址(⽹站,电⼦邮件,FTP 等)
(2)域名解析
本地HOSTS解析
DNS服务器解析

(3)网站的基本概念

⽹站、⽹⻚、主⻚;
HTTP、URL、HTML、超链接
(4)web网站
web1.0(以编辑为特征)
web2.0(侧重⽤户交互)

yum -y install httpd

systemctl start httpd

systemctl stop firewalld

echo "我是静态的html文件" > index.html

静态资源  根据开发者保存的项目资源目录中的路径去访问静态的资源 html  图片 js css 音乐  视频

静态服务和动态服务

生成一个大文件

二、http协议

HTTP协议是超⽂本传输协议的缩写,英⽂是Hyper Text Transfer Protocol。它是从WEB服务器传输超⽂本标记语⾔ (HTML) 到本地浏览器的传送协议

1、http原理

HTTP是⼀个基于TCP/IP通信协议来传递数据的协议,传输的数 据类型为HTML ⽂件,图⽚⽂件,查询结果等。
HTTP协议⼀般⽤于B/S架构。浏览器作为HTTP客户端通过URL 向HTTP服务端即web服务器发送所有请求,web服务器收到客 户端请求后进⾏响应

2、http的特点

1. http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST:3.灵活:HTTP 允许传输任意类型的数据对象。传输的类型由Content-Type 加以标记。除开可以响应字符串之外,还可以上传和下载二进制文件
4.无连接:限制每次连接只处理一个请求。服务器处理完请求并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录 http状态的技术,一个叫做 Cookie,一个叫微 Session。
5.无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。

dd  if=/dev/zero of=/var/www/html/a.txt bs=30M count=1   #创建一个文件,给定文件大小为30M

3、URI 和 URL 的区别

(1)HTTP使用统一资源标识符(Uniform Resource ldentifiersURI)来传输数据和建立连接。
          URl:Uniform Resource ldentifier 统一资源标识符
          URL:Uniform Resource Location 统一资源定位符
(2)URI是用来标识一个具体的资源的,我们可以通过 URI知道一个资源是什么,使用它就能够唯一地标记互联网上资源
(3)URL 则是用来定位具体的资源的,标识了一个具体的资源位置。互联网上的每个文件都有一个唯一的。
(4)URL,也就是我们俗称的网址,它实际上是 URI的一个子集。
(5)URI不仅包括 URL,还包括 URN(统一资源名称),它们之间的关系如下:

三、HTTPS协议

HTTP⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于 此,HTTPS应运⽽⽣。
HTTPS 的全称为 (HyperTextTransferProtocoloverSecureSocketLayer),
HTTPS 和 HTTP 有很⼤的不同在于 HTTPS 是以安全为⽬标的 HTTP通道,在HTTP 的基础上过传输加密和身份认证保证了 传输过程的安全性。
HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS=HTTP+SSL。

1、HTTP使⽤明⽂传播,有三⼤⻛险

(1)窃听⻛险(eavesdropping):第三⽅可以获知通信内容。
(2)篡改⻛险(tampering):第三⽅可以修改通信内容。
(3)冒充⻛险(pretending):第三⽅可以冒充他⼈身份参与通信。

2、SSL/TLS协议是为了解决这三⼤⻛险⽽设计的,希望达到

(1)所有信息都是加密传播,第三⽅⽆法窃听。
(2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。
(3)配备身份证书,防⽌⽌身份被冒充。

3、https安全通信的四大原则

(1)机密性
就是对数据的加密,在传输数据的过程当中,如果被⼈劫持了数
据,那么这个加密的数据对⽅不能轻易获得。
(2)完整性
是指数据在发送到接收的过程当中没有被篡改,从⽽接收到的数据
是⼀个完整的数据内容。
(3)身份认证
数据传输的过程当中对于身份的验证,确认对⽅是传送数据过来的
⼈。可以解决冒充这样的⻛险。
(4)不可否认性
不能否认已经发⽣的⾏为。⽐如刚才举例双⽅借钱需要有借据并且
签名按⼿印,如此⼀来就不能抵赖。

四、apache服务

查看华为云主机的所有的打开的端口

systemctl start firewalld

firewall-cmd --list-ports

回到本地虚拟机

systemctl start firewalld

可以停用防火墙,也可以指定端口打开

setenforce 0

firewall-cmd --zone=public --add-port=80 --permanent

systemctl start httpd

查看防火墙的打开的端口

firewall-cmd --list-all

shutdown

apache服务器的搭建

firewall-cmd --list-ports    #查看主机的所有打开端口

yum -y install httpd

rpm -qa |grep httpd    #查看安装情况以及安装的资源文件
rpm -ql httpd      #查看安装资源文件
ls /etc/httpd
vim /etc/httpd/conf/httpd.conf 
ls /var/www/html      #查看配置文件
systemctl start httpd    #启动http服务
#查看端口
netstat -lnput|grep http
#检查防火墙
systemctl status firewalld
#可以单独的打开端口
firewall-cmd --zone=public --add-service=http
#打开服务器不会马上生效,需要重启或者重载服务信息
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --add-port=80/tcp --zone=public --permanent    #一定要加
firewall-cmd --reload

cd /var/www/html

vim index.html

<!doctype html>
<html>
        <head>
                <meta charset="utf-8">
                <title>正方形</title>
                <style>
                        div{
                                background-color:red;
                                width:120px;
                                height:120px;
                        }
                </style>
        </head>
        <body>
                <div>正方形</div>
        </body>
</html>

物理机浏览器输入192.168.1.33/index.html

静态文件如果无法在浏览器上访问,就一定无法加载在页面上

五、nginx

(一)nginx服务

1、nginx服务器的特点

(1)模块化设计

(2)低内存消耗,高并发

(3)事件驱动

(4)高可靠性,master与worker架构

(5)支持热更新配置、日志文件滚动、平滑升级

(6)丰富的扩展模块

2、nginx与apache的区别
(1)架构
Apache 采⽤多进程架构,每个请求都由⼀个独⽴的进程处理; ⽽Nginx采⽤异步事件驱动的架构,可以处理更多的并发连接。
(2)性能
由于Nginx的架构设计,它可以处理更多的并发连接,⽽且在⾼ 负载情况下表现更加稳定和可靠。因此,Nginx通常被认为是⽐ Apache更⾼效的Web服务器。
(3)配置
Apache 的配置⽂件⽐较复杂,需要⼀定的学习和经验才能正确 配置;⽽ Nginx 的配置⽂件⽐较简洁和可读性强,更容易理解 和配置。
(4)功能
ngin x有许多模块可以扩展其功能,例如 mod_rewrite ⽤于 URL 重写,mod_ssl⽤于 SSL 加密等;⽽apach 的功能⽐较简 单,但是可以通过第三⽅模块扩展其功能。
3、源码编译安装

(1)下载源码包

wget https://nginx.org/download/nginx-1.26.1.tar.gz
ls 
nginx-1.26.1.tar.gz
tar -zxvf nginx-1.26.1.tar.gz

安装依赖软件

yum -y install gcc gcc-c++
yum -y install make
yum -y install openssl-devel
yum -y install pcre-devel

(2)编译安装

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream

./configure:“./”再需要解释就别学运维了,“configure”,编译安装前的预配置。
--prefix=/usr/local/nginx:指定软件的安装路径,意不是安装包目录,而是软件要安装在哪。--user=nginx:程序用户为nginx。--group=nginx:组为nginx。

--with-http_ssl_module:提供HTTPS支持,ssl证书模
块。
--with-http_stub_status_module:获取nginx工作状态模块。
--with-http_realip_module:获取真实客户端IP

--with-stream:启用TCP/UDP代理模块。省略预配置过程

make

make install

useradd -s /bin/nologin -M nginx      #没有nginx用户不能启动
检查目录

tree /usr/local/nginx

开放端口或者服务80

firewall-cmd --zone=public --add-port=80/tcp --permanent

重载防火墙

firewall-cmd --reload

4、启动和关闭nginx服务

ln -s /usr/local/nginx/sbin/nginx  /usr/bin
nginx
nginx -s stop
netstat -lnput | grep nginx
nginx
netstat -lnput | grep nginx
ls -l  /usr/bin/nginxl
ls -l  /usr/bin/nginx
之所以指令能在命令行使用,是因为在$PATH目录中能找到这个可执行文件或者是这个可执行文件的连接文件

5、用脚本启动nginx

vim ~./nginx.sh

#!/bin/bash
/usr/local/sbin/nginx &> /dev/null
netstat -lnput|grep nginx
if [ $? -ne 0  ];then
      echo "当前nginx正在执行,或者是80被占用"
fi

bash ~./nginx.sh
当前nginx正在执行,或者是80被占用
或者

bash ~/nginx.sh
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      16432/nginx: master 
 

6、用systemctl启动nginx

vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=Flase
[Install]
WantedBy=multi-user.target

重载systemctl的配置文件

systemctl daemon-reload

systemctl stop nginx
systemctl restart nginx

(二)nginx企业实战

添加监控模块

vim /usr/local/nginx/conf/nginx.conf

:set number

:43,46 co 47

 48         location /status{
 49            stub_status on;
 50            access_log off;
 51         }

systemctl reload nginx

物理机浏览器访问:192.168.1.44/status

Active connections: 2    #活动的连接数
server accepts handled requests  #累计接受的连接数   累计处理的连接数   累计请求的连接数4 4 3  
Reading: 0 Writing: 1 Waiting: 1    #正在读取,写入和等待的连接数

相关文章:

Linux系统服务——【web,http协议,apache服务和nginx服务】(sixteen day)

一、web基础以及http协议 1、web基本概念和常识 前端开发一般用uniapp. 1、Web:为用户提供的一种在互联网上浏览信息的服务&#xff0c;Web 服务是动态的、可交互的、跨平台的和图形化的。 2、Web 服务为用户提供各种互联网服务&#xff0c;这些服务包括信息浏览服务&#xf…...

100、Python 关于时间日期的一些操作

在Python中&#xff0c;我们用于处理时间和日期相关的类型最常用的模块是datetime模块。该模块提供了很多与时间日期相关的类&#xff0c;对我们处理时间日期变得很方便。 以下是一些常见的关于时间日期的操作。 一、datetime类 1、获取当前日期和时间&#xff08;年、月、日…...

【精通Redis】Redis命令详解

引言 Redis是一个内存数据库&#xff0c;在学习它的内部原理与实现之前&#xff0c;我们首先要做到的就是学会使用&#xff0c;学会其丰富的命令操作。 一、字符串 Redis的字符串类型之前笔者的一篇入门介绍中曾经说过&#xff0c;不是简单的只存人可以阅读的字符串&#xf…...

项目经理的开源工具指南:优化您的选择过程

国内外主流的10款开源项目管理系统对比&#xff1a;PingCode、Worktile、禅道、Teambition、Gogs、码云 Gitee、Jira、Redmine、ProjectLibre、OpenProject。 在选择合适的开源项目管理系统时&#xff0c;很多团队面临诸多挑战&#xff1a;功能是否全面&#xff1f;易用性如何&…...

如何防御IP劫持

摘要 IP劫持是一种网络攻击方式&#xff0c;攻击者通过各种手段获取对某个IP地址的控制权&#xff0c;并将其用于恶意目的。这种攻击可能会导致数据泄露、服务中断等严重后果。本文将介绍IP劫持的基本概念、攻击方式以及防御策略&#xff0c;并提供一些实际的代码示例。 IP劫…...

C++绝对值

在C中&#xff0c;你可以使用标准库中的abs函数来获取一个整数的绝对值。对于浮点数&#xff0c;也有一个类似的函数叫做fabs。下面是如何使用这些函数的示例&#xff1a; 对于整数 对于整数&#xff0c;你可以使用std::abs函数&#xff0c;它存在于<cstdlib>头文件中。…...

C# dataGridView 去掉左边多出来空列

1.问题 在使用winform做界面程序时&#xff0c;dataGridView控件创建好后&#xff0c;左侧会多出一列为空&#xff0c;如何删除呢 2.解决方法 你可以在属性窗口中进行设置 如图&#xff1a; 将RowHeadersVisible 属性设置为False 或者代码设置 this.dataGridView1.RowHea…...

esp32

买了单片机模块&#xff0c;学8266...

IDEA 本地有jar包依赖文件,但是所有引用的jar包全部爆红

前端时间 看源码&#xff0c;下载源码额按钮不见了&#xff0c;折腾了很久&#xff0c;遂打算重新安装idea&#xff0c;但是重新安装后&#xff0c;发现代码全都爆红&#xff0c;按照晚上说的删除idea 文件夹&#xff0c;idea缓存删除&#xff0c;都不好使&#xff0c;但是看到…...

如何在调整节拍时间的过程中保持生产流程的稳定性?

在快节奏的工业生产领域&#xff0c;节拍时间&#xff08;Takt Time&#xff09;——即完成一个完整产品所需的标准时间&#xff0c;是维持生产效率和流程稳定性的关键指标。然而&#xff0c;市场需求的波动、技术升级或是生产线的微调&#xff0c;都可能要求我们对节拍时间进行…...

3. Docker的数据管理与持久化

在Docker容器化应用中&#xff0c;数据的持久化和管理是一个关键问题。容器的生命周期短暂&#xff0c;容器的停止和删除会导致数据丢失。因此&#xff0c;了解Docker的数据卷&#xff08;Volumes&#xff09;和挂载&#xff08;Mounts&#xff09;的管理方式&#xff0c;对保障…...

Logback原理及应用详解(九)

本系列文章简介&#xff1a; 在软件开发的过程中&#xff0c;日志记录是一项至关重要的功能。它不仅帮助开发者在开发阶段追踪代码的执行流程和调试问题&#xff0c;还在生产环境中扮演着监控应用运行状态、记录关键业务信息和排查故障的重要角色。随着软件系统的日益复杂和分布…...

SpringBoot 禁用RabbitMQ自启动

1.背景 在实际开发中,项目中使用了mq,但是在测试的时候用不到mq,或者测试环境的mq挂了, 希望能正常启动项目 2.步骤 这很简单在配置文件中增加一个配置就可以了 spring:autoconfigure:exclude: org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration 表示启…...

unity 实现图片的放大与缩小(根据鼠标位置拉伸放缩)

1创建UnityHelper.cs using UnityEngine.Events; using UnityEngine.EventSystems;public class UnityHelper {/// <summary>/// 简化向EventTrigger组件添加事件的操作。/// </summary>/// <param name"_eventTrigger">要添加事件监听的UI元素上…...

Scrapy 爬取旅游景点相关数据(五)

本期内容&#xff1a;&#xff08;1&#xff09;爬取日本其他城市数据存入数据库&#xff08;2&#xff09;爬取景点评论数据 1 爬取其他城市景点数据 只爬取一个城市的数据对于做数据可视化系统可能是不够的&#xff0c;因为数据样本量少嘛&#xff0c;本期来爬取其他城市的景…...

程序员纯粹八股文的危害有哪些,应该如何来解决?

“八股文”这个词在程序员面试的上下文中通常指的是那些被广泛讨论、反复练习的问题和答案&#xff0c;它们往往围绕着一些经典的技术知识点&#xff0c;例如算法、数据结构、设计模式等。这些知识在面试中被频繁提及&#xff0c;以至于应聘者经常会提前准备并背诵这些答案&…...

LabVIEW操作系列1

系列文章目录 我的记录&#xff1a; LabVIEW操作系列 文章目录 系列文章目录前言五、特殊用法5.1 取值范围表示5.2 对输入值取值范围进行限定5.3 控制多个While循环停止运行。5.4 获取按钮上的文本5.5 获取按钮上的文本【进阶】 六、使用步骤1.引入库2.读入数据 七、其余功能7.…...

【前端 09】JavaScript中的对象与JSON

JavaScript中的对象与JSON 在JavaScript中&#xff0c;对象和JSON&#xff08;JavaScript Object Notation&#xff09;是两个紧密相连但又有区别的概念。它们都在数据处理和交换中扮演着重要角色。本文将详细讲解JavaScript中的自定义对象以及JSON对象的基本概念、格式、用法…...

C# 字符串罗马数字123转汉字一二三

要将字符串 "123" 转换为 "一二三"&#xff0c;可以通过以下几种方法来实现。 1. 使用映射字典 可以创建一个映射字典&#xff0c;将数字字符映射到对应的中文数字&#xff0c;然后遍历原始字符串进行替换&#xff1a; using System; using System.Coll…...

红杉资本视角:大公司在AI领域的投资策略与市场影响

在人工智能&#xff08;AI&#xff09;的快速发展浪潮中&#xff0c;大型科技公司如谷歌、Meta等正在积极投资&#xff0c;以确保在未来技术竞争中占据有利地位。红杉资本等投资机构对此现象进行了深入分析&#xff0c;探讨了大公司在AI领域的投资策略及其对市场的影响。本文将…...

CI/CD学习之路

CI/CD之路 https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg4NDg0MjQ0MQ&actiongetalbum&album_id3433192036428447744&scene173&subscene&sessionidsvr_0b1e7fe1d6b&enterid1721879847&from_msgid2247485821&from_itemidx1&count3&am…...

IP 泄露: 原因与避免方法

始终关注您的IP信息&#xff01; 您的IP地址不仅显示您的位置&#xff0c;它包含几乎所有的互联网活动信息&#xff01; 如果出现IP泄漏&#xff0c;几乎所有的信息都会被捕获甚至非法利用&#xff01; 那么&#xff0c;网站究竟如何追踪您的IP地址&#xff1f;您又如何有效…...

深⼊理解指针(1)

1. 内存和地址 2. 指针变量和地址 3. 指针变量类型的意义 4. const修饰指针 5. 指针运算 6. 野指针 7. assert断⾔ 8. 指针的使⽤和传址调⽤ 1. 内存和地址 1.1 内存 计算机内存空间如何高效率的管理&#xff1f; 也是把内存划分为⼀个个的内存单元&#xff0c;每个…...

Photoshop 2023:创意无限的图像编辑神器

Photoshop 2023 是一款专为 Mac 和 Windows 系统设计的强大图像编辑软件&#xff0c;为专业设计师和业余爱好者提供了无与伦比的创作工具和功能。 一、强大的编辑工具 Photoshop 2023 拥有丰富的编辑工具&#xff0c;如选择工具、画笔工具、橡皮擦工具等。其选择工具能够精确…...

高校是需要AIGC 实验室还是大数据人工智能实验室呢

AIGC&#xff08;人工智能与图形计算&#xff09;实验室和大数据人工智能实验室虽然都隶属于人工智能的范畴&#xff0c;但它们的关注点、研究方向和具体应用领域有所不同。 我们分别从研发方向、技术侧重、应用领域、研究工具和方法等方面去分析两者的区别&#xff0c;希…...

Nginx系列-12 Nginx使用Lua脚本进行JWT校验

背景 本文介绍Nginx中Lua模块使用方式&#xff0c;并结合案例进行介绍。案例介绍通过lua脚本提取HTTP请求头中的token字段&#xff0c;经过JWT校验并提取id和name信息&#xff0c;设置到http请求头中发向后段服务器。 默认情况下&#xff0c;Nginx自身不携带lua模块&#xff0…...

数据库设计三范式

目录 第一范式 第二范式 第三范式 数据库的设计范式&#xff0c;即数据库设计的原则&#xff1b; 在设计数据库时尽量遵守这三个条件&#xff0c;因为在实际的设计中&#xff0c;根据要求是空间换时间还是时间换空间来遵守范式&#xff1b; 第一范式 每一张表都必须有主键…...

VirtualBox创建共享磁盘

VirtualBox创建共享磁盘 目录 VirtualBox创建共享磁盘1、划分共享磁盘1.1、【管理】->【工具】->【虚拟介质管理】1.2、【创建】->【VDI&#xff08;VirtualBox 磁盘映像&#xff09;】->【下一步】1.3、【预先分配全部空间】->【下一步】1.4、【分配大小】->…...

2024年中职云计算实验室建设及云计算实训平台整体解决方案

随着信息技术的飞速发展&#xff0c;云计算作为新一代信息技术的核心&#xff0c;正逐步渗透到各行各业&#xff0c;成为推动数字化转型的重要力量。为了适应这一趋势&#xff0c;中职教育作为技能型人才培养的重要阵地&#xff0c;亟需加强云计算实验室建设与云计算实训平台的…...

[C++] C++11新增

一、列表初始化 C98&#xff1a; 在C98中&#xff0c;标准允许使用花括号{}对数组元素进行统一的列表初始值设定。 struct Simple1 {int _a;int _b; };//C98 int main() {int a1[] { 1,2,3,4,5,6 };int a2[7] { 0 };//本质是类型转换&#xff08;构造拷贝构造 -> 优化 …...