1、Nginx基本概述
高性能的web、
反向代理、
均衡负载服务器。它能够支持很
高的并发连接(理论达到5W次,实际应用中达到2-3w次),而
cpu、内存消耗却很低,且
稳定。
2、Nginx三大功能
(1)web服务
nginx
响应静态的本地的文件(Nginx不能处理jsp等这样的动态文件),直接响应给浏览器;
nginx将jsp等这样的
动态文件转发给Tomcat等这样的能响应动态文件的服务器,然后Tomcat将响应之后的文件转给nginx,然后nginx在将文件转给浏览器。
可以说nginx没有跑什么具体的业务,但Apache这类的服务器是真的会跑一些业务的。
(1.1)nginx和Apache比较
Apache通常一个网站某一时刻有1w个点击量的话,就会开1w个线程来响应这1w个请求,所以内存消耗是非常大的。
nginx采用master进程和wor进程k的工作模式,work通常等于cpu的核数。master进行用于监听用户(客户端)请求,同时用于监听word状态(是否alive等)。
Apache采用多进程、多线程技术(因此内存消耗大),nginx采用基于事件的机制(能够快速进行切换,但这种不适合处理业务逻辑,所以消耗小)
总的来说,在处理静态文件来说,nginx要比Apache性能要高很多,但nginx主要用作反向代理。
(1.2)nginx处理静态文件的过程(如.html文件)过程:
可以看到是一个拼接的过程, 首先通过域名(即server中的servername)找到对应的root,然后将root和url中的文件地址拼接成一个文件地址,去nginx本地中找这个文件。
(1.3)nginx处理动态文件的过程:
实际上就是一个转发的过程。
(2)反向代理
功能:
(2.1)负载均衡
通过这种配置方式,可以解决session问题(默认的实轮训方式)
(2.2)nginx中的服务server名称说明(需要用上dns域名服务器):
在系统自带的hosts文件中进行域名与ip的对应。
nginx并不能直接将域名,在请求的时候可能会将域名带上。
(2.3)保护服务器(用户不能直接看到服务器)
(3)负载均衡
主要通过upstream模块来实现