web中间件

Apache

Nginx

lamp/lnmp

一、中间件简介 

中间件(Middleware):是提供系统软件和应用软件之间连接的软件,以便于软件各个部分之间的沟通。关于中间件,我们可以理解为:是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务软件。

 常见的中间件

nginx

apache

tomcat

wedlogic

tengine

iis - windows 服务器

......

二、HTTP协议 

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信。请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端成为服务器端。

请求行内容:

                               第一部分:请求方法

                                 1)GET

                                 2)POST

                                  ......

                                第二部分:请求url

                                        

                                第三部分:使用的http协议版本号

                                        http 0.9

                                        http 1.0

                                        http 1.1

 请求头的内容:

                        Host:指定目标网站的域名或者是IP地址

                        Connection:当前客户端的链接状态

                        User-Agent:指定客户端访问网站时候使用的浏览器

                        refer:表示当前这个请求是直接访问过来的,还是从其他网站跳转过来的

http请求格式: 

第一行:请求行
第二行-空白行:请求头
空白行下面:请求体
GET /download/a.html HTTP/1.1
Host: www.baidu.com
Connection: close
sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Ap0.0.0 Safari/537.36
Sec-Purpose: prefetch;prerender
Purpose: prefetch
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,i=0.8,application/signedexchange;v=b3;q=0.7
Sec-Fetch-Site: none
xxx

http响应格式:

第一行:响应行
第二行-空白行:响应头
空白行下面:响应体
HTTP/1.1 / 200 OK
Content-Security-Policy: frame-ancestors 'self' http
Content-Type: text/html; charset=utf-8
Date: Fri, 29 Mar 2024 00:27:39 GMT
Server: BWS/1.1
Traceid: 1711672059044989722616594963546741901591
X-Ua-Compatible: IE=Edge,chrome=1
X-Xss-Protection: 1;mode=block
Connection: close
Content-Length: 406827
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="Content-Type"
content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible"
content="IE=edge,c

HTTP 状态码

状态代码有三位数字组成,第一个数字定义了响应的类型,共有五种类型:

1xx:指示信息 - 表示请求已接收,继续处理

2xx:成功 - 表示请求已成功接收、理解、接受

3xx:重定向 - 要完成请求必须进行更进一步的操作

4xx:客户端错误 - 请求有语法错误或请求无法实现

5xx:服务器错误 - 服务器未能实现合法的请求

200 OK : 客户端请求成功

301 :永久重定向

302 Found :临时重定向

400 Bad Request : 客户端请求有语法错误,不能被服务器所理解

401 Unauthorized : 请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用

402 Forbidden : 服务器收到请求,但是拒绝提供服务

404 Not Found : 请求资源不存在,eg:输入了错误的URL

500 Internal Server Error : 服务器发生了不可预期的错误

503 Server Unavailable : 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

HTTP格式:http://域名:端口号/路径/文件名            端口号:默认是80

三、Apache(httpd)

Apache HTTPD又可以简称为httpd或者Apache,它是Internet使用最广泛的web服务器之一,使用Apache提供的web服务器是由守护进程httpd,通过http协议进行文本传输,默认使用80端口的明文传输方式,当然,后来,为了保证数据的安全和可靠性,又添加了443的加密传输的方式,Apache提供的服务器又被称为:补丁服务器,原因很简单,它是一款高度模块化的软件,想要给它添加相应的功能只需添加相应的模块,让其Apache主程序加载相应的模块,不需要的模块也可以不用加载,保证了Apache的简洁,轻便,高效性,当出现大量访问一个服务器是可以使用多种复用模式,保证了服务器能快速回应客户端的请求,如MPM,端口复用技术。

特点: 
1、开放源代码
2、跨平台使用,支持绝大多数硬件平台,支持所有的unix系统和linux系统,支持大多数windows平台
3、支持多种web编程语言,perl,php,python,java等
4、模块化设计,根据所需功能去安装不同的模块
5、运行非常稳定,支持大负载访问的web站点
6、安全性高,及时修复已发现的漏洞

安装Apache

第一步:配置yum源

第二步:安装Apache

yum install httpd

第三步:启动Apache 

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

第四步:检查Apache状态 

[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2024-04-02 14:09:50 CST; 1h 20min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1065 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1065 /usr/sbin/httpd -DFOREGROUND
           ├─1156 /usr/sbin/httpd -DFOREGROUND
           ├─1157 /usr/sbin/httpd -DFOREGROUND
           ├─1158 /usr/sbin/httpd -DFOREGROUND
           ├─1159 /usr/sbin/httpd -DFOREGROUND
           └─1160 /usr/sbin/httpd -DFOREGROUND

4月 02 14:09:49 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
4月 02 14:09:50 localhost.localdomain httpd[1065]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' d... this message
4月 02 14:09:50 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
也可以
[root@localhost ~]# ps -aux | grep httpd
root       1065  0.0  0.5 224080  5032 ?        Ss   14:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1156  0.0  0.2 224080  2928 ?        S    14:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1157  0.0  0.2 224080  2928 ?        S    14:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1158  0.0  0.2 224080  2928 ?        S    14:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1159  0.0  0.2 224080  2928 ?        S    14:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     1160  0.0  0.2 224080  2928 ?        S    14:09   0:00 /usr/sbin/httpd -DFOREGROUND
root       5476  0.0  0.0 112824   976 pts/0    R+   15:32   0:00 grep --color=auto httpd
也可以
[root@localhost ~]# ss -tunl | grep 80 
tcp    LISTEN     0      128    [::]:80                 [::]:*       

五、访问Apache 

apache的作用是开启一个端口,等待客户端通过浏览器访问

 测试之间,建议关闭防火墙和selinux

关闭防火墙
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl stop firewalled
关闭selinux
查看当前selinux的状态
[root@localhost ~]# getenforce
Enforcing
关闭命令:
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config

四、Nginx(httpd)

 Nginx 是高性能的 HTTP 和反向代理的web服务器,Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。

1、跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有Windows的移植版本。
2、配置异常简单:非常容易上手。配置风格跟程序开发一样,神一般的配置。
3、非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数.(这得益于Nginx使用了最新的epoll模型)。
4、内存消耗小
5、稳定性高:用于反向代理,宕机的概率微乎其微。nginx代理和后端web服务器间无需长连接。

 安装nginx 

方法1:编译安装

        依赖:openssl-devel   zlib-devel   ncurses-devel  pcre-devel  gcc  gcc-c++

方法2:yum安装

        nginx的rpm包在epel源

下载位置:https://nginx.org 

第一步:下载

[root@localhost html]# wget http://nginx.org/download/nginx-1.24.0.tar.gz

 第二步:安装依赖

[root@localhost ~]# yum install openssl-devel zlib-devel ncurses-devel pcre-devel
gcc gcc-c++ -y

第三步:安装nginx

[root@localhost ~]# tar xvf nginx-1.24.0.tar.gz
[root@localhost ~]# cd nginx-1.24.0
[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx && make &&
make install

nginx的目录结构

[root@localhost nginx-1.24.0]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf html logs sbin

         conf:这个目录存放的是nginx的配置文件

         html:这个目录是nginx默认的网站的根目录

         logs:这个是nginx的日志文件目录

         sbin:这个是nginx的启动程序的目录

启动nginx

[root@localhost ~]# cd /usr/local/nginx/sbin
[root@localhost sbin]# ./nginx
[root@localhost sbin]# lsof -i :80  #检查端口

重启nginx

[root@localhost ~]# cd /usr/local/nginx/sbin
[root@localhost sbin]#./nginx -s reload

让nginx开机自启动

[root@localhost ~]# echo "/usr/loacl/nginx/sbin/nginx">>/etc/rc.d/rc.local
[root@localhost ~]# chmod +x /etc/rc.d/rc.local

  • 33
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值