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.拒绝访问,开放端口或服务

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值