当前位置:首页 > 教程 > 正文内容

nginx有哪些内容(nginx的特点)

2023-04-21 19:40:07教程1

nginx的特点

nginx一般会用作负载均衡,spring cloud有zuul做网关,功能也很强大,根据项目特点选择,一般是不需要的

nginx的主要特征

启动失败的解决办法:Nginx 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

nginx的功能

Nginx 跟 Haproxy 其实他们两个的定位是有所不同的,Nginx的定位是一个server,Haproxy的定位是一个load balancer。

Nginx通过各种plugin module可以支持Load balance的功能,而且性能不弱于haproxy太多,所以总有人拿来将两个东西比较。其实Apache也可以通过相关模块做load balancer,只不过性能差得多而已所以没人用而已。当然了Nginx的LB功能现在是其支柱主打功能而已。

看到有很多答案对于haproxy多进程有误解,这里特别说下,haproxy早就支持多进程模型,但是并不是Nginx的Worker Master结构,而是平等多进程结构,同时也支持REUSE PORT选项,所以在这里Nginx跟Haproxy对于多核利用上都是一样的并没有本质区别。

haproxy从1.8之后,添加了多线程的模式,现在它更推荐的也是这个模型,在一些平台上能够更好的利用多核。而Nginx从来没有多线程模型。而且看起来社区也没打算支持。

Nginx其实基于server的功能来说,是Haproxy不具备的,让Haproxy像一个普通Web server那样回复一个普通的HTTP请求是很难的,不大规模修改源码根本做不到。Haproxy是围绕转发模型设计的,整个流程就是围绕如何快速把一个请求或者回复转发到另一端。并不是像Server一样接受请求然后回复。

但是Nginx作为一个纯粹的LB来说,尤其是针对Web LoadBalancer来说,功能没有haproxy那么细致。Haproxy支持的ACL对象非常广泛,很多情况并不需要脚本辅助就可以完成复杂的功能,而Nginx稍微复杂的LoadBalance功能都需要使用脚本才能完成,这样性能就会差很多。

从功能角度上来讲,Nginx其实功能比Haproxy要多(当然并不都是免费的),因为他的开发社区和定位方向都比Haproxy要大和宽泛。在Nginx上面的各种解决方案也要多的多。比如WAF,haproxy一致都没有比较好的原生解决方案。还有包括最近针对Service Mesh的支持,haproxy都是很难跟得上。

但是基础功能,包括HTTP2,TLS 1.3,Script, SSL/TLS offload,ocsp,SNI preload,其实haproxy最新版本早就已经支持,甚至比Nginx还更早些(HTTP2比较晚,但是现在也支持了)。另外,关于硬件SSL offload支持其实主要是OpenSSL的engine的支持,所以这个大家都差不多,只要兼容最新OpenSSL都没什么问题。

Haproxy的优点其实是转发性能稍高,因为haproxy追求zero copy的forward流程,所以代码都倾向于优化在这一点上。但是这个优势现在被广泛的TLS/SSL应用抹平了,对比0 copy节省的时间来说加解密的消耗的性能占绝大多数,所以haproxy基本上在现在的广泛SSL环境下没有什么优势了。除非你想用纯HTTP,而且还想使用比较复杂的基于HTTP头部的Load Balance功能,那么Haproxy是个好选择,否则只是单纯LB的话,LVS性能其实更更高,毕竟人家在Kernel里面。

从代码层面来说,Nginx的结构化代码和模块化都比Haproxy好太多。Haproxy代码模块化一直是个大问题,内部结构模块化不足,二次开发困难,最近到1.9了才有些改善,但是仍然有很多内部trick的hack和让人发懵的FLAG。相比Nginx做到的彻底的模块化,可以轻易的通过开发自己的模块来改变或者实现相关功能,这个haproxy是不具备的。

从开发社区来说,Nginx也比Haproxy好太多,Haproxy虽然社区历史更久,但是一直都是不愠不火,贡献者因为原作者的严格的控制,一直都很少,再加上没有module开发功能,所以吸引的开发者一直都不多。带来的问题就是版本更新慢,支持的新功能慢。HTTP2的开发完全靠原作者一个人,所以支持进度严重拖后。

这篇文章看起来好像是变成了对haproxy吐槽,但是因为在工作中接触这两个东西实在太多,而且是进行深度二次开发,所以自认为还是有一定的了解的。从目前来看,如果haproxy不能更开放招募更多的贡献者,不能彻底修改架构支持module开发,是无法比拟NGINX的。

另外Haproxy优势一点的就是免费版的功能比Nginx免费版的更实惠。对于小又穷的站点的确是个好处。

nginx的特点与优势

PHPWAMP的Nginx功能不错,Nginx站点管理”特点如下:

1、添加站点可以指定任意PHP版本,多版本可以同时运行。

2、Nginx站点管理可以给每个站点分配不同的进程数,很灵活。

3、Nginx默认的6个PHP版本都是对应阶段的最后最新稳定版本,兼容性高。

4、Nginx站点管理的每个网站都将受到安全守护,可以实时保护网站正常运行。

5、自带多个php版本,自带mysql5.5、5.6、5.7,支持无限添加mysql版本和php版本

6、Nginx站点管理与原来的Apache站点管理一样强大,甚至可以说更强大,纯绿色稳定运行。

站点管理的各大PHP版本默认都已经集成了zendguard,默认支持MSSQL(SQLServer)等多个数据库。

nginx的特征

传统数据存储

(1)传统应用的架构

主要逻辑是

LVS负责负载均衡;Squid/Varnish承担图片、静态页的缓存功能;Nginx用来做反向代理;

Web服务器处理业务逻辑;数据库存储业务数据;Cache服务器主要用作对象缓存和列表缓存;

其中存在大量能产生access日志的服务器,有效存储日志是一个难题。

(2)传统存储的运行机制

面对上面的业务系统产生的大量日志,传统的处理方式是采用集中存储。

集中存储就是指有一台大型主机或多台主机组成中心节点,数据集中存储于这个中心节点上。

并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。

在集中式系统中,每个终端或客户端仅仅负责数据的录入和输出,而数据的存储与控制处理完全交给主机来完成。

集中式存储最大的特点就是部署结构简单,由于系统往往基于底层性能卓越的大型主机。

因此无须考虑如何对服务部署多个节点,也就不用考虑多个节点之间的分布式协作问题。

共享一个文件系统及其它的物理设备资源,分配存储资源这种工作需要人工干预,由存储管理员来完成。

这种集中式系统也是由关系型业务系统演变而来的。

日志接收服务器通过网络共享、rsync、网络传输等技术,将日志集中到几台磁盘容量很大的大型主机上面。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98790210.html