商务服务
nginx详解反向代理、负载均衡、LNMP架构上线动态网站
2024-10-31 18:40

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev在建立的项目时,使用基于BSD许可。

nginx详解反向代理、负载均衡、LNMP架构上线动态网站

Nginx

  • 轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源
  • 抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。
  • nginx 处理静态文件好,静态处理性能比 apache 高三倍以上
  • nginx 的设计高度模块化,编写模块相对简单
  • nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃
  • nginx 作为负载均衡服务器,支持 7 层负载均衡
  • nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器
  • 启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级
  • 社区活跃,各种高性能模块出品迅速
  • apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache
  • apache 发展到现在,模块超多,基本想到的都可以找到
  • apache 更为成熟,少 bug ,nginx 的 bug 相对较多
  • apache 超稳定
  • apache 对 PHP 支持比较简单,nginx 需要配合其他后端用
  • apache 在处理动态请求有优势,nginx 在这方面是鸡肋,一般动态请求要 apache 去做,nginx 适合静态和反向。
  • apache 仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区

    两者最核心的区别在于 apache 是同步多进程模型,一个连接对应一个进程,而 nginx 是异步的,多个连接(万级别)可以对应一个进程

    一般来说,需要性能的 web 服务,用 nginx 。如果不需要性能只求稳定,更考虑 apache ,后者的各种功能模块实现得比前者,例如 ssl 的模块就比前者好,可配置项多。epoll(freebsd 上是 kqueue ) 网络 IO 模型是 nginx 处理性能高的根本理由,但并不是所有的情况下都是 epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的 select 模型或许比 epoll 更高性能。当然,这只是根据网络 IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。

    更为通用的方案是,前端 nginx 抗并发,后端 apache 集群,配合起来会更好。

    简单来说,集群就是指一组相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理。当用户客户机请求集群系统时,集群给用户的感觉就是一个单一的服务器,而实际上用户请求的是一组集群服务器。

    集群主要包括几大特点:高性能、价格有效性、可伸缩性、高可用性、透明性、可管理性和可编程性。

    常见的负载均衡的架构包括有负载均衡集群、高可用性集群、高性能计算集群等等。这里着重介绍负载均衡集群,其他的集群方式不做介绍。

    负载均衡集群为企业提供了更为实用、性价比更高的系统架构解决方案。负载集群可以把很多客户集中的访问请求负载压力尽可能平均分摊到计算机集群中处理。客户访问请求负载均衡通常包含应用程序处理负载均衡和网络流量负载。这样的系统非常适合使用同一组应用程序为大量用户提供服务的模式,每个节点都可以承当一定的访问请求负载压力,并且可以实现访问请求在各节点之间动态分配,以实现负载均衡。

    负载均衡集群运行时,一般是通过一个或多个前端负载均衡器将客户访问请求分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。一般高可用性集群和负载均衡集群使用类似的技术,或同事具有高可用与负载均衡的特点。负载均衡的作用为:分担用户访问及数据流量、保持业务的连续性、应用于Web业务及数据库从库等服务器的业务。

    互联网企业中常见的开源集群软件有:Nginx、LVS、Haproxy、Keepalived等,硬件有F5、Netscaler等。

    严格地说,Nginx仅仅是作为Nginx Proxy反向代理使用的,因为反向代理功能表现的效果是负载均衡集群的效果,所以也叫做Nginx负载均衡。反向代理和负载均衡的区别在于负载均衡通常都是对请求的数据包的转发(也有可能会改写数据包)、传递,其中DR模式明显的特征就是从负载均衡下面的节点服务器来看,接收到的请求还是来自负载均衡器的客户端的真实用户。而反向代理,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户。在节点服务器来看,访问节点服务器的客户端用户是反向代理服务器,而不是真实的网站访问用户。

    Nginx负载均衡的模块主要有两个,ngx_http_proxy_module,ngx_http_upstream_module。编译的时候需要把这两个模块编译进去。

    下载nginx需要使用到epel源

    配置好yum源之后就可以进行下载了

    反向代理:在收到客户端请求之后,会修目标IP地址和端口

    正向代理:在收到客户端请求之后,会修源IP地址和端口

    上游服务器:代理服务器后端的哪些真正给客户端提供服务的节点,这样的服务器称之为上游服务器

    下游服务器:客户端就是下游节点

    反向代理服务器IP:172.20.10.7/28

    web1服务器IP:172.20.10.8/28

    web2服务器IP:172.20.10.9/28

    yum安装nignx需要配置网络源,复制下面的代码到你的yum仓库中

    安装nginx

    配置nginx文件,我们实现这样一个效果,静态文件都被代理到172.20.10.8,动态文件都被调度到172.20.10.9,实现动静分离。

    进行语法检测

    检查没有问题之后进行重启

    安装apache

    准备测试文件,172.20.10.8准备静态文件

    172.20.10.9需要下载php以便支持动态文件

    172.20.10.9准备动态文件,

    请求静态文件测试

    静态文件请求已经成功转发至172.20.10.8。

    请求动态文件测试

    动态文件请求已经成功转发至172.20.10.9.

    语法规则: 【= | ^~ | ~ | ~* | / | /uri 】

    location = /uri                 = 表示精确匹配,只有完全匹配上才能生效,若找到,停止搜索;

    location ^~ /uri               ^~开头表示对URL路径进行前缀匹配(通常是个目录),并且在正则匹配之前,若找到,停止搜索;

    location ~ pattern           ~开头表示区分大小写的正则匹配,按配置文件顺序匹配;

    location ~* pattern          ~*开头表示不区分大小写的正则匹配,按配置文件顺序匹配;

    location /uri                    不带任何修饰符,表示前缀匹配,在正则匹配之后;

    location /                        通用匹配,任何未匹配到其他location的请求都会匹配到,相当于default;

    多个location配置的情况匹配顺序为

    调度器:分发用户的请求到一个后端节点

    上游服务器(真实服务器):每个真正用来处理用户请求的节点都是一个上游服务器

    CIP:客户端的IP地址

    RIP:真实服务器的IP地址

    VIP:虚拟IP,用户所看到的是也是虚拟IP

    nginx服务器IP:172.20.10.7/28

    web1服务器端IP:172.20.10.8/28

    web2服务器端IP:172.20.10.9/28

    安装nginx略

    配置nginx文件

    语法检测

    重启nginx

    略.和上面反向代理配置一样。

    输入nginx服务器端的IP地址

    因为172.20.10.9的权重为2,即出现两次172.20.10.9才会出现一次172.20.10.8.进行刷新测试

    第一步:安装服务程序

    下载php-fpm需要用到下面的源

    第二步:修改nginx配置文件

    修改server部分

    第三步:重启nginx和php-fpm

    第四步:删上传wordpress并编辑

    第五步:启动数据库并创建数据库和用户

        以上就是本篇文章【nginx详解反向代理、负载均衡、LNMP架构上线动态网站】的全部内容了,欢迎阅览 ! 文章地址:http://lianchengexpo.xrbh.cn/news/12370.html 
         资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://lianchengexpo.xrbh.cn/mobile/ , 查看更多   
    最新新闻
    二胎概念火了!任泽平:未来四胎五胎可能给奖励
      人口政策问题再次广受关注。  昨日晚间,央行微信公众号发布题为《关于我国人口转型的认识和应对之策》的工作论文,聚焦了
    全球下载量突破20亿时TikTok遭遇“围剿”,张一鸣对公司员工说了啥
    抖音短视频国际版TikTok近日在美国的遭遇不断反转、不断刷新。虽然特朗普对其封禁令尚未最终拍板,但TikTok在海外年轻人中的火爆
    如何查询手机流量?查询手机流量方法教学
      手机是一个我们现在广泛使用的电子产品,我们除了利用手机进行通话之外,最多的就是利用手机上网了。如果想要利用手机上网的
    孙楠:希望自己的音乐带给观众快乐
      中新网杭州6月25日电 (胡小丽 刘文彬)1990年,孙楠发行了首张个人专辑《弯弯的月亮》,从此走上职业歌手的道路。到今天,已
    【夜读】7条成长建议,送给正在努力的你
    01改变自己会痛苦,不改变自己会吃苦不抗拒改变、不用陈旧的方式去处理新问题,是一个人走向成熟的标志。很多时候,只是一个细节
    tiktok前身是什么发展历史,一文带你了解tiktok发展历程
    在互联网发展如此迅速的今天,各种的媒体社交改变了我们的生活,带来了更多的便利条件,让我们了解这个周围以及世界的最新咨询。
    中考倒计时,科学备考秘籍请收好
      本报记者潘洁婷通讯员王晓敏  今年是“双减”政策实施以来的首次中考,距离2022年中考还有不足一个月时间。备考冲刺阶段,
    千万粉丝!他突然全网被封
    近日,在抖音拥有1800多万粉丝的倪海杉账号被平台封禁。关于倪海杉账号被封原因,网络上有多种猜测。另外,倪海杉在快手上拥有50
    全新 Model 3 发布!内外饰全面焕新,屏幕换挡进入全民时代
    6年前,特斯拉为 Model 3的亮相开了一场盛大的发布会,特斯拉首席执行官、首席设计官悉数到场。Model 3是公司当前的头等要事。马
    一部具有重大警世意义和很高文学价值的力作——评屈全绳的长篇小说《鹅头岭》
    作者:汪守德一按一般人的想象,有着数十年从军经历的老将军,离休之后不再为公务缠身,不再因百事纠结,或写一点回忆录之类的轻
    本企业新闻
    推荐企业新闻

    点击拨打: