搭建LNMP环境实现高并发请求

   日期:2024-12-26    作者:akxfc888 移动:http://ljhr2012.riyuangf.com/mobile/quote/31652.html

搭建LNMP环境实现高并发请求

准备工作

使用centos7系统并关闭SELinux和firewalld防火墙(老生常谈了

配置华为镜像云网络源

更新内核版本(yum update

安装编译工具和和依赖软件包

 

准备Nginx(1.8)、mysql(5.56)、php(7.4.33)三大源码包

源码软件包安装

nginx

1.使用tar -xvf直接解压即可

2.创建用于运行nginx的用户

 

3.预编译定义nginx选项

 
mysql

1.使用tar -xvf直接解压即可

2.创建mysql用户

 

3.预编译并且安装mysql

 

4.生成配置文件

 

5.初始化授权表

 

6.生成Mysql的启动和自启动管理脚本

 

7.给mysql的root用户设置密码

 
php

1.使用tar -xvf直接解压即可

2.预编译选项并且安装

 

3.生成php配置文件

 

4.创建软连接,使用php相关命令是更方便

 
使用nginx连接php

1.使用nginx连接php先启动php-fpm

 

2.修改Nginx的配置文件,使其识别.php后缀的文件

 

注意:有些网站项目开发时,目录和页面结构不相同,重新定义正则匹配

案例:location ~ .php(/.*)*$

该结构适用于typecho博客项目,可以匹配出"http://192.168.88.110/blog/index.php/archives/1/"

1.学nginx之前需要了解的知识

1.1 同步和异步(通知结果的方式
 

同步与异步的区别在于消息通知的方法上,也就是调用结果的通知方式不同

1.2 阻塞和非阻塞(进线程等待时状态
 

阻塞和非阻塞的区别在于(进程/线程)等待消息 时候的行为,也就是在等待消息的时候,当前(进程/线程)是挂起状态还是非挂起状态

同步异步和阻塞非阻塞的四种组合

  • 同步阻塞 :客户端在向服务端发送调用消息,客户端需要等待服务端的返回消息结果。在这个返回的过程中,进线程会被挂起,只有返回消息返回到客户端,进线程才会被激活。(apache就是该模式
  • 同步非阻塞:客户端在向服务端发送调用消息,客户端需要等待服务端的返回消息结果。在这个返回的过程中,不会阻塞当前进线程,返回消息会立即返回客户端。
  • 异步阻塞:客户端在向服务端发送调用消息,客户端不需要一直等待服务端的返回消息结果。在这个返回的过程中,进线程会被挂起,只有返回消息返回到客户端,进线程才会被激活。
  • 异步非阻塞:客户端在向服务端发送调用消息,客户端不需要一直等待服务端的返回消息结果。在这个返回的过程中,不会阻塞当前进线程,返回消息会立即返回客户端。(nginx就是该模式
 
1.3 epoll模型

当连接有I/O事件产生的时候,epoll就会去告诉进程哪个连接有I/O事件产生,然后进程就去处理这个事件。

1.4 nginx为什么比其他web服务器能处理高并发请求(工作原理
 
1.5 分布式

​ 同一项任务有多个不同的步骤协同完成的服务器构建方式

1.6 负载均衡

​ 同一类有多个服务彼此分摊压力的服务器构建方式。结合调度器

1.7 HTTP协议

​ 超文本传输协议

​ http1.1 数据传输的过程将所有的数据一起传输

​ http2 数据传输的时候将数据进行分流管理(分成图片文件、php文件、html文件等,提高处理数据效率

​ http3 支持udp传输

 

2. Nginx详解

2.1 概述

​ Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协。议下发行。其特点是内存利用率高,并发能力强。

2.2 工作模式

nginx有两种工作模式:master-worker模式和单进程模式。

master-worker模式

nginx启动成功后,会有一个master进程和至少一个的worker进程。master进程负责处理系统信号,加载配置,管理worker进程(启动,杀死,监控,发送消息/信号等)。worker进程负责处理具体的业务逻辑,也就是说,对外部来说,真正提供服务的是worker进程。生产环境下一般使用这种模式。

使用master-worker模式的优点

 

单进程模式(了解即可

单进程模式下,nginx启动后只有一个进程,nginx的所有工作都由这个进程负责。由于只有一个进程,因此可以很方便地利用gdb等工具进行调试。该模式不支持nginx的平滑升级功能,任何的信号处理都可能造成服务中断,并且由于是单进程,进程挂掉后,在没有外部监控的情况下,无法重启服务。因此,该模式一般只在开发阶段和调试时使用,生产环境下不会使用。

2.3 配置文件结构
 

3.nginx实验

实验1:nginx的状态统计

1.预编译nginx的时候使用–with-http_stub_status_module,将该模块开启

2.修改nginx的主配置文件(写入要访问的server标签

 

3.客户端访问网址IP/tongji

"Active connections"表示当前的活动连接数
"server accepts handled requests"表示已经处理的连接信息三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数

实验2:目录保护

继续上面的步骤继续实验

在线状态统计的location中添加

 

使用apache的命令htpsswd进行用户密码文件的创建

 

重启nginx

 

实验结果

实验3:基于IP访问控制

接着上面的实验完成操作

在线状态统计的localtion添加

 

重启nginx

 
实验4:nginx的虚拟主机(基于域名

1.提前准备两个网站域名,并且规划了两个网站网页存放目录,并且设置好权限

www.first.com(/use/local/nginx/html/one) www.second.com(/use/local/nginx/html/two)

2.在nginx主配置文件中编写两个server标签,并且写好各自信息

 

3.重启nginx

 

4.分别访问两个不同的域名验证结果(需要把域名和ip地址加到本机hosts文件中

实验5:nginx的反向代理

正向代理:是一个位于客户端和原始服务器之间的服务器,为了从原始服务器获得内容,客户端向代理发送一个请求并指定目录,然后代理向原始服务器转交请求并获得内容返回给客户端

反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,及用户直接访问代理服务器就可以获得目标服务器之间的资源,反向代理服务器负责将请求转发给目标服务器。

用户不需要知道目标服务器的ip地址,也无需在用户端做任何决定

实验步骤

1.在另一台机器安装apache,启动并编写页面

2.编写nginx的主配置文件在server标签内添加

 

3.重启nginx

 

启动之前原页面

启动之后现在页面

实验6:负载调度(负载均衡

负载均衡:就是将任务分摊到多个操作单元上进行执行,例如web服务器、FTP服务器、企业关键应用服务器和其他关键任务服务器等,从而共同完成工作任务

实验步骤

1.使用默认的rr轮询算法,修改nginx配置文件

 

2.开启并设置两台主机(99.135和99.145

 

3.重启nginx,使用客户端进行测试

 

扩展补充:wrr算法实现加强轮询

 
实验7:nginx实现https(证书+rewrite

实验步骤

1.预编译nginx,需要将–with-http_ssl_module 模块开启

2.在对应要进行加密的server标签中添加以下内容开启SSL

 

3.生成证书密钥文件

 

4.设置http自动跳转https功能

 

5.重启nginx,并测试


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号