nginx官网:http://nginx.org/

一、 nginx和apache的区别

Nginx

1、轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源。

2、抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。

3、nginx 处理静态文件好,静态处理性能比 apache 高三倍以上。

4、nginx 的设计高度模块化,编写模块相对简单。

5、nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃。

6、nginx 作为负载均衡服务器,支持 7 层负载均衡。

7、nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器。

8、启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级

9、社区活跃,各种高性能模块出品迅速

Apache

1、apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache

2、apache 发展到现在,模块超多,基本想到的都可以找到

3、apache 更为成熟,少 bug ,nginx 的 bug 相对较多

4、apache 超稳定

5、apache 对 PHP 支持比较简单,nginx 需要配合其他后端用

6、apache 在处理动态请求有优势,nginx 在这方面是鸡肋,一般动态请求要 apache 去做,nginx 适合静态和反向。

apache 仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区

总结

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

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

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

二、集群

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

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

1、负载均衡集群

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

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

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

2、Nginx负载均衡集群介绍

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

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

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

转载于:https://www.cnblogs.com/renyz/p/11283840.html

Linux服务之nginx服务篇一(概念)相关推荐

  1. linux基础Samba服务和nginx服务

    一.Samba服务 1.准备环境:iptables -F:关闭防火墙 #systemctl disable firewalld:开机默认关闭 #systemctl stop firewalld:立即关 ...

  2. Linux基础系列:常用命令(5)_samba服务与nginx服务

    作业一:部署samba 每个用户有自己的目录,可以浏览内容,也可以删除 所有的用户共享一个目录,只能浏览内容,不能删 安装samba服务 1.准备环境 setenforce 0 2.安装软件包 yum ...

  3. Linux 下重启 PHP 服务、nginx 服务

    一.重启 PHP 服务 service php-fpm start 开启 service php-fpm stop 停止 service php-fpm restart 重启 二.重启 nginx 服 ...

  4. linux 系统 安装 nginx 服务

    nginx安装位置: /usr/local/nginx 注意:该目录(/usr/local/nginx/html)下存在部署的服务,升级时注意备份,升级后须确保项目迁移并存在: nginx 安装所需依 ...

  5. 前端利用docker在linux上部署nginx服务

    背景介绍 docker简单的用一下,用的不是很熟,个人记录一下.(大神略过...)我这边的linux系统在虚拟机上安装的centerOS7 64位的系统.假如你已经装好了系统. 实际操作 其实在网上也 ...

  6. 综合架构web服务之nginx详解

    文章目录 nginx 服务配置详细介绍 关于作者 前言 一.nginx web 入门简介 1.1 什么是nginx 1.2 常见的网站服务 1.3 nginx 网站服务特点 1.4 网站页面访问原理 ...

  7. Nginx服务基础:配置文件、访问状态统计、虚拟主机

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.编译安装Nginx服务 1.关闭防火墙,配置域名 2.安装nginx软件包及依赖包 3.编译安装Nginx 4.检 ...

  8. Linux中级实战专题篇一:nginx服务(特性优势,yum安装,编译安装详解,虚拟主机技术详解)

    一.HTTP 介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器 ...

  9. Linux state 方式 安装nginx 服务

    第3章 Linux state 方式安装nginx 服务 3.1 State 方式安装nginx 1,创建相应的目录 a)Mkdir –p /srv/nginx 2,生成nginx.sls 文件 a) ...

最新文章

  1. 解决报错: MobaXterm X11 proxy: Unsupported authorisation protocol
  2. ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-中)
  3. python技巧:拆分多层嵌套列表
  4. 常规操作中浏览器缓存检测与服务器请求机制总结
  5. seaborn.FacetGrid
  6. Sklearn参数详解—GBDT
  7. php 通过坐标获取省市,PHP根据经纬度获取在范围坐标的数据
  8. 设计模式之观察者模式demo
  9. Html、CSS、JavaScript 实时效果在线编辑器 - 学习的好工具,算不算?!
  10. mysql rpl_MySQL管理工具MySQL Utilities — mysqlrplcheck(44)
  11. mysql数据库开发经历_六年开发经验,整理Mysql数据库技巧笔记,全网最详细的笔记集合!...
  12. 微商人赚钱的4个关键点
  13. 何把SATA/RAID驱动集成到win xp 安装盘里?
  14. 【转】Build Your own Simplified AngularJS in 200 Lines of JavaScript
  15. 深度卷积神经网络(CNN)
  16. 服务器无线桥接后怎么上网,tplink无线路由器桥接成功不能上网该怎么办?
  17. 物业服务的品质、成本与四保一服的数字化方法
  18. 邮件营销有效吗?分享几个实用的电子邮件营销策略和技巧!
  19. python另存为对话框_“另存为文件”对话框如何不允许覆盖
  20. Python图像识别-Opencv07 异或运算,图像加密

热门文章

  1. c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为
  2. CSS之Multi-columns的跨列
  3. 每日一学:如何用matplotlib展示图片
  4. c语言做贪吃蛇vs2015,熬书几个月,终于编出简易的贪吃蛇了,VS2013
  5. 基于墨刀实现的短视频分享软件原型设计
  6. protractor端到端测试简介
  7. 结对项目开发-电梯调度
  8. mysql数据到导入导出
  9. 实例1.2:获得应用程序主窗口指针
  10. .net宿舍管理系统 mysql_基于.NET CORE的精美后台管理系统-RuoYi C#版