分享好友 最新动态首页 最新动态分类 切换频道
搭建LNMP环境实现高并发请求
2024-12-26 07:34

搭建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,并测试

最新文章
excel 区域内按行排序_在Excel 2010中对行进行排序
Most of the time when you're sorting in Excel, you sort based on the values in one or more columns. If your workbooks are like mine, it's rare that you sort horizontally, based on the values in a row. But if you ne
c编程向计算机发送数据,一文读懂一台计算机是如何把数据发送给另一台计算机的...
这是之前一篇文章的修订版,感觉是一篇很不错的文章,重新修改排版了下。前言天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送
CTF 工具 集合
From:Hello CTF:在学习CTF前希望您具备一些CS领域的基础知识,这里推荐您先阅读 JANlittle师傅写的CS入门资料 ( 点此跳转 ) 大致具备CS领域的基本技能后再开始CTF的学习。 入入入入门(fén)综述࿱
AI小助手使用指南:涵盖TV版操作与百度AI小助手应用教程
在这个科技日新月异的时代人工智能()正在逐步渗透到咱们生活的各个角落从智能手机、智能家居到智能电视等设备。小助手作为人工智能技术的产物它能帮助我们更高效地完成日常任务如播放音乐、查询天气、设置闹钟等,甚至可以成为我们的生活
08山东电视台公共频道节目推介暨广告年会直播
12月2日19:00时现场直播2008山东电视台公共频道节目推介暨广告年会  【大片头】  【新闻女生组推介板块】  1、 开场歌舞:《魅力》2’40  表演:七名新闻女生  伴舞:20男生  【主持人开场】孙亮 郭培鑫  【《新闻女生组》
Android 的开源电话/通讯/IM聊天项目全集
一、Android的XMPP客户端 BeemBeem 是一个运行于 Android 手机平台的 XMPP (jabber) 的客户端软件,兼容标准的 XMPP 服务器和服务,例如 Ejabberd, Openfire, Facebook, 和 Gmail). 支持 SASL, 代理(Socks4, Socks5, HTTP), DNS SRV, and c
ai智能机器人源码定制开发快速搭建送服务器
聊天机器人chatai*近推出了一款新产品——-Lisa,它能帮助人们更好地交流和分享想法。这款软件目前还在测试阶段,已经有很多人使用过了。1:chat在线聊天机器人的开发背景随着移动互联网的发展,智能手机已经成为人们生活中不可或缺的工具
AI智能生成文字Logo:一站式解决个性化标识设计需求
在数字化浪潮的推动下形象已成为企业竞争力的关键组成部分。一个独有、个性化的标识不仅可以吸引消费者的目光还能传递企业的核心价值。传统的标识设计往往需要耗费大量时间和精力且难以满足个性化需求。如今智能生成文字Logo的出现为解决这
BTS WORLD
【基本介绍】『一睁眼竟是2012年,而且我还成了Big Hit的职员?!在BTS还没出现的世界,我成为了BTS的经纪人。现在他们能否出道,全看我了!』难道就是追星的最高境界?我还能回到原来的世界吗?如同梦境一般在眼前展开的的神秘故事,现在
Autodesk Maya 2023 for Mac 正版激活永久使用(支持M1)
兼容M1的Autodesk Maya 2023 终于更新啦!!玛雅是专业的三维动画设计工具,这次的maya2023中文版引入Blue Pencil,它取代了现有的油性铅笔工具,提供更多用于文本和形状的绘图工具,以及用于注释的图层系统,另外还更新了布尔建模、拓扑工
相关文章
推荐文章
发表评论
0评