Web基础、apache和nginx的知识及服务搭建

一、Web基础概念和常识

Web:为用户提供的⼀种在互联网上浏览信息的服务,Web 服务是动态的、可交互的、跨平台的和图形化的。

Web 服务为⽤户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。

Web 应⽤开发也经过了及代技术的不断发展,目前 Web 开发依然是最重要的开发内容之一。Web 基础的技术包括超⽂本标记语言(HTML)和 HTTP 协议,HTML 是一种呈现数据的方式(给人看的),而 HTTP 则是一组通信的标准(语法、语义、时许),可以简单的理解为 HTTP 携HTML。

1. web 应用:网站(广义上的PC,手机app)

2. 浏览器(Browser):也称⽤户代理,web客户端,主要有IE、

Edge、Chrome、Firefox、腾讯浏览器,360浏览器等。

3. web服务器(web server):也称HTTP服务器(HTTP

server),主要有 Nginx、Apache、Tomcat 等。

二、HTTP和HTTPS协议

1.HTTP协议       

        HTTP协议是超文本传输协议的缩写,英文是Hyper TextTransfer 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. 无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前⾯的信息,则必须重传。

3.URI 和 URL 的区别

(1)HTTP使用统一资源标识符(Uniform Resource Identifiers,URI)来传输数据和建立连接。

        URI:Uniform Resource Identifier 统一资源标识符

        URL:Uniform Resource Location 统一资源定位符

(2)URI 是用来标识⼀个具体的资源的,我们可以通过 URI 知道⼀个资源是什么,使用它就能够唯一地标记互联网上资源。

(3)URL 则是用来定位具体的资源的,标识了⼀一具体的资源位置。互联网上的每个文件都有一个唯一的。

(4)URL,也就是我们俗称的⽹址,它实际上是 URI 的⼀个子集。

(5)URI 不仅包括 URL,还包括 URN(统一资源名称),它们之间的关系如下:

2.https协议

HTTP一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS应运而生。

HTTPS 的全称为(HyperTextTransferProtocoloverSecureSocketLayer),HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的。

HTTP通道,在HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。

HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说HTTPS=HTTP+SSL。

HTTPS 安全通信的四大原则

(1)机密性,就是对数据的加密,在传输数据的过程当中,如果被人劫持了数据,那么这个加密的数据对方不能轻易获得。

(2)完整性,是指数据在发送到接收的过程当中没有被篡改,从而接收到的数据是一个完整的数据内容。

(3)身份认证,数据传输的过程当中对于身份的验证,确认对方是传送数据过来的⼈。可以解决冒充这样的风险。

(4)不可否认性,不能否认已经发生的行为。

三、Apache服务

1.apache概念

        最早的 web 服务程序,基于 http 协议提供网页浏览服务。

1.特点

模块化设置、开放源代码、跨平台应用、支持多种 web 编程语言、运行稳定。

2.工作模式

(1)Prefork:使⽤进程处理请求,在该模式中比较消耗内存,但稳定性高,如某个进程出现题,不会影响其他请求。

(2)Worker:属于多进程模式,每个进程生成多个进程;在该模式下消耗的资源比较小,适合高并发请求,但稳定性没有 Prefork 模式稳定。

(3)Event:该模式与 Worker 模式较为相似,不同之处在于在该模式下可以解决keepalive 长连接时占用线程资源导致浪费的问题。

(4)keep-alive 长连接:TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了带宽。实现长连接要客户端和服务端都支持长连接。

2.搭建apache服务器

1.安装并设置防火墙
[root@localhost ~]# yum -y install httpd   #安装服务
[root@localhost ~]# rpm -ql httpd   #查看配置文件
2.apache配置文件

查看配置文件:

[root@http ~]# ls /etc/httpd/
conf  conf.d  conf.modules.d  logs  modules  run

修改配置文件:

[root@http ~]# vim /etc/httpd/conf/httpd.conf
<!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>

启动服务:

[root@http ~]# systemctl start httpd.service

 检查防火墙状态:查看防火墙是否启⽤,若启用则设置apache服务可通行规则。

[root@server2 ~]# systemctl status firewalld.service 

设置防火墙:

[root@http ~]# firewall-cmd --zone=public --add-service=http   
success

 重载防火墙规则:

[root@http ~]# firewall-cmd --reload  
success

查看当前区域下的防火墙所有规则:

[root@http ~]# firewall-cmd --list-all   

浏览器访问不到的情况,打开80端口再进行访问就可以啦。

[root@http ~]# firewall-cmd --add-port=80/tcp
success

3.浏览器访问

四、nginx服务

1.Nginx简介

1.Nginx(engine X):开源、轻量级、高性能的 HTTP 和反向代理服务器,可以代理 HTTP、IMAP/POP3/SMTP 和 TCP/UDP协议。

2.基本特点:占用内存少、并发能力强,采用用C 语言编写,在性能方面有一定保证。

3.反向代理:Nginx 可以用来做负载均衡及反向代理使用,目前使用最多的是负载均衡。

4.与 Nginx 同类的 Web 服务有 Apache、Tomcat 等。

5.官方网站:http://nginx.org/

2、Nginx 服务器特点

(1)模块化设计

Nginx 将模块分为核⼼模块、HTTP 模块、事件模块和邮件模块 四类。每个模块都有特定的职责,从⽽实现了整个 Web 服务器 的功能。

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

Nginx 使⽤ epoll and kqueue 作为开发⼯具,能够⽀持最⼤ 50000 个并发连接数的响应;不论是系统资源开销还是 CPU 使 ⽤效率都很优秀。

(3)事件驱动

nginx 采⽤异步⽅式处理请求。

同步:指在发送⽅发出消息后,需要等待接收到接收⽅发回的响 应,或者通过回调函数来接收到对⽅响应信息。

异步:指在发送⽅发出请求后,接收⽅不需要返回消息或者不等 待返回消息,直接提供响应请求机制。

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

⼀个主进程和多个⼯作进程。⼯作进程是单线程的,且不需要特 殊授权即可运⾏;

master进程:主要⽤来监控worker进程⼯作状态进⾏相应重 启、停⽌等操作。

worker进程:进⾏具体提供服务,接受请求和处理请求。

(5)⽀持热更新配置、⽇志⽂件滚动、平滑升级

/usr/local/nginx/sbin/nginx -s reloadhtml⽬录中的⽂件发上修改之后,不需要nginx服务 可向 master 发送 USR1、QUIT 等信号,⽆需强制停⽌服务即 可完成热更新。

向 master 发送的 USR1,可实现⽇志⽂件滚动。

向 master 发送的 USR2,可实现平滑升级。

(6)丰富的扩展模块

可在编译安装 nginx 时指定拓展模块,例如:nginx-sticky。

module 模块(基于 cookie 来进⾏负载转发)。

3.nginx安装

1.源码下载安装

  下载地址:   https://nginx.org/download/nginx-1.26.1.tar.gz

​
[root@nginx ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz

2.安装依赖包
[root@nginx ~]# yum -y install gcc gcc-c++ make  lrzsz
[root@nginx ~]# yum -y install openssl-devel pcre-devel
 3.解压
[root@nginx ~]# tar -zxvf nginx-1.26.1.tar.gz
4.编译安装
[root@nginx ~]# cd nginx-1.26.1/
[root@nginx nginx-1.26.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
[root@nginx nginx-1.26.1]# make && make install

“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代理模块。

5.创建用户
[root@nginx nginx-1.26.1]# useradd -s /bin/nologin -M nginx
5.检查安装目录
[root@nginx nginx-1.26.1]# tree /usr/local/nginx/

 

[root@nginx nginx-1.26.1]# cd /usr/local/nginx/

6.启动nginx并查看
[root@nginx nginx]# ./sbin/nginx
[root@nginx nginx]# netstat -lnput | grep nginx

7.拒绝访问,开放端口或服务

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python IO多路复用select,poll,epoll区别

Python IO多路复用select,poll,epoll区别 在Python中,IO多路复用是一种有效的技术,允许一个进程管理多个IO操作,提高IO效率。Python提供了几种不同的IO多路复用机制,主要有select,poll和epoll,它们在不同的操作系统上有不同的实现,但都用于相似的目的。下面是它们的主…

Windows 11 实现移动热点自启动

原文链接&#xff1a;https://blog.iyatt.com/?p16784 背景 公司的 WiFi 用起来很卡&#xff0c;但是电脑有线使用网络又是正常的&#xff0c;另外我用的那台台式机是有无线网卡的&#xff0c;平时就是用电脑开热点给手机用&#xff0c;但是每次开机都要自己手动启动就麻烦&…

【云原生】Kubernetes中crictl的详细用法教程与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

心动小站Ⅸ--Nvidia一种夸张的增长

当有灭绝级别的威胁时&#xff0c;你希望它如何出现在头版&#xff1f;华尔街日报或 CNN 的新闻中说它即将发生&#xff1f; 大多数新闻都是在灾难发生后才传到你耳中的。谈到人工智能&#xff0c;我们已经收到了很多警告&#xff0c;这些警告来自各个领域的专家&#xff0c;比…

下面关于枚举的描述正确的一项是?

A. 枚举中定义的每一个枚举项其类型都是String&#xff1b; B. 在Java中可以直接继承java.util.Enum类实现枚举类的定义&#xff1b; C. 利用枚举类中的values()方法可以取得全部的枚举项&#xff1b; D. 枚举中定义的构造方法只能够使用private权限声明&#xff1b; 答案选择…

鸿蒙(API 12 Beta2版)NDK开发【Node-API简介】

Node-API简介 场景介绍 HarmonyOS Node-API是基于Node.js 8.x LTS的[Node-API]规范扩展开发的机制&#xff0c;为开发者提供了ArkTS/JS与C/C模块之间的交互能力。它提供了一组稳定的、跨平台的API&#xff0c;可以在不同的操作系统上使用。 本文中如无特别说明&#xff0c;后…

鸿蒙配置Version版本号,并获取其值

app.json5中配置版本号&#xff1a; 获取版本号&#xff1a; bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then((bundleInfo) > {let versionName bundleInfo.versionName; //应用版本号}).catch((error: BusinessE…

redis面试(二)List链表数据

list 列表 我们总是说List为列表&#xff0c;其实在真正的数据结构来说&#xff0c;redis是自己基于c语言来实现的双向链表数据结构&#xff0c;主要的逻辑就是每个节点都可以指向下一个节点&#xff0c;这个结构就属于链表数组结构。 每个节点中的属性如下&#xff1a; type…

「数组」C++STL库vector(动态数组|向量)全部函数介绍

概述 vector 是一种C标准模板库STL中定义的一种序列容器&#xff0c;它允许你在运行时动态地插入和删除元素。 vector 是基于数组的数据结构&#xff0c;但它可以自动管理内存&#xff0c;这意味着你可以添加任意多的元素在其中&#xff0c;并且你不需要手动分配和释放内存。…

CTF Web SQL注入 10000字详解

这里写目录标题 涉及的数据库知识unionorder bydatabase()information_schemalimit--空格注释replaceinto outfilelikeGROUP BYHAVINGGROUP BY、HAVING、WHERE之间的关系regexp 原理信息收集操作系统数据库判断注入点注入点类型POST注入数字型注入字符型注入搜索型注入Insert/u…

数学中的连分式、无穷连根式、平方根

连分式 连分式&#xff08;continued fraction&#xff09;由和与倒数的多层嵌套构成&#xff0c;可以是有限的&#xff0c;也可以是无限的。 表达式&#xff1a;或 import mathdef fraction_to_continued_fraction(numerator, denominator, max_terms):"""计算…

【无标题】web+http协议+nginx搭建+nginx反向代理(环境准备)

一&#xff0e;Web 为用户提供互联网上浏览信息的服务&#xff0c;web服务是动态的&#xff0c;可交互的。 1.安装httpd yum -y install httpd 2.启动 systemctl start httpd 3.关闭防火墙 systemctl stop firewalld [rootrs html]# echo "我手机号是" > …

zeppline 连接flink 1.17报错

Caused by: java.io.IOException: More than 1 flink scala jar files: /BigData/run/zeppelin/interpreter/flink/zeppelin-flink-0.11.1-2.12.jar,/BigData/run/zeppelin/interpreter/flink/._zeppelin-flink-0.11.1-2.12.jar 解决方案&#xff1a; 重新编译zepplin代码&…

如何在 cPanel 上更改主共享 IP 地址

cPanel & WHM的主共享IP地址是服务器上新建虚拟主机账户时的默认IP地址。这使得主机服务商能够轻松创建新账户&#xff0c;并简化原本复杂且耗时的域名和网络服务器配置过程。但如果你想更改cPanel服务器的主共享IP地址&#xff0c;该怎么办呢&#xff1f; 本文将概述更改服…

PHP经销商订货管理系统小程序源码

经销商订货管理系统&#xff1a;重塑供应链效率的利器 &#x1f680; 开篇&#xff1a;解锁供应链管理的新纪元 在竞争激烈的商业环境中&#xff0c;经销商作为供应链的关键一环&#xff0c;其订货效率直接影响到整个供应链的流畅度和响应速度。传统的订货方式往往繁琐、易出…

Kylin与Spark:大数据技术集成的深度解析

引言 在大数据时代&#xff0c;企业面临着海量数据的处理和分析需求。Kylin 和 Spark 作为两个重要的大数据技术&#xff0c;各自在数据处理领域有着独特的优势。Kylin 是一个开源的分布式分析引擎&#xff0c;专为大规模数据集的 OLAP&#xff08;在线分析处理&#xff09;查…

精品PPT | 云原生大数据平台构建及落地实践.pptx

1、监控和可观测性的关系及渊源 2、当前阶段落地可观测性的挑战在哪里 3、落地好一个可观测系统的三大要素 4、面向故障处理过程的可观测性体系建设案例 5、思考&#xff1a;人工智能2.0对可观测性技术和产品演进的影响

YOLO入门教程(一)——训练自己的模型【含教程源码 + 故障排查】

目录 引言前期准备Step1 打标训练Step2 格式转换Step3 整理训练集Step4 训练数据集4.1创建yaml文件4.2训练4.3故障排查4.3.1OpenCV版本故障&#xff0c;把OpenCV版本升级到4.0以上4.3.2NumPy版本故障&#xff0c;把NumPy降低版本到1.26.44.3.3没有安装ultralytics模块4.3.4Aria…

Web 安全:Memcached 未授权访问漏洞.(11211端口)

Web 安全&#xff1a;Memcached 未授权访问漏洞 Memcached 是一套常用的 key-value 缓存系统&#xff0c;由于它本身没有权限控制模块&#xff0c;所以对公网开放的 Memcache 服务很容易被攻击者扫描发现。然而 Memcached 的默认配置&#xff0c;11211 端口 不需要密码即可访问…