1.Nginx简介
1.概况
Nginx:
- Nginx是一个高性能的HTTP和反向代理服务器
- 是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件(IMAP/POP3)代理服务器
- 单台物理服务器可支持30 000~50 000个并发请求(实际上20000-30000)
Apache - Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适用于多处理器环境,因此,在一个apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器
2.Nginx和Apache的优缺点比较
1)nginx相对于apache的优点∶
-
轻量级,同样起web服务,比apache占用更少的内存及资源
-
抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资源低消耗高性能
-
高度模块化的设计,编写模块相对简
(2)apache相对于nginx的优点∶
-
Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)
-
模块多,基本想到的都可以找到
-
少bug, nginx的bug相对较多
-
超稳定
存在的理由:一般来说,需要性能的web服务,用nginx。若不需要性能只求稳定,就选用apache。
Nginx作为web服务器与Apache比较
-
apache是同步多进程模型,一个连接对应一个进程,nginx是异步的,多个连接可以对应一个进程。
-
Nginx处理静态文件好,耗费内存少,只适合静态和反向。
-
Apache在处理动态有优势
-
nginx并发性比较好,CPU占用内存低,如果rewrite频繁,选用apache最佳。
-
总的来说,apache依然是大部分公司的首选。
Nginx的优点:
●工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构。Nginx正则规则比HAProxy更为强大和灵活。
●Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,LVS对网络稳定性依赖比较大,稳定要求相对更高。
●Nginx安装和配置、测试比较简单、方便,有清晰的日志用于排查和管理,LVS的配置、测试就要花比较长的时间了。
●可以承担高负载压力且稳定,一般能支撑几万次的并发量,负载度比LVS相对小些。
●Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等。
●Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。
●Nginx作为Web反向加速缓存越来越成熟了,速度比传统的Squid服务器更快,很多场景下都将其作为反向代理加速器。
●Nginx作为静态网页和图片服务器,这方面的性能非常优秀,同时第三方模块也很多。
Nginx的缺点:
●Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些。
●对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。
●不支持Session的直接保持,需要通过ip_hash和cookie的引导来解决。
认识Nginz服务的主配置文件nginx.conf
1、全局块:全局配置,对全局生效;
2、events块:配置影响Nginx 服务器与用户的网络连接;
3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
4、server块:配置虚拟主机的相关参数,一