高并发负载均衡Nginx
拓扑结构
正反向代理
-
正向代理代理客户端,反向代理代理服务器。
-
客户端是要进行一些正向代理的设置的。(自己知道自己在通过vpn访问google)
-
反向代理代理的是服务器,作为客户端的我们是无法感知到服务器的真实存在的。(自己并不知道nginx给我们做了代理)
Nginx Apache
apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程
- 多个连接对应一个进程:不恰当例子:一切皆文件,一个连接就是一个socket文件,进程里面放的就是N个socket文件描述符。虽然在轮询,但是少了内核态和用户态切换的时间。正规说明:IO、NIO、BIO。https://www.jianshu.com/p/5bb812ca5f8e
- 热加载 热升级。 Nginx master父进程 work子进程。升级加载过程中重新孵化子进程的过程
Nginx Conf
-
nginx收到请求头,判定ip,port,hosts决定server
nginx location匹配.用客户端的uri匹配location的uriserver{ listen 80; server_name:www.sxt.com localtion{ oot index; autoindex on; } }
-
基于Nginx的反向代理
server { location / { proxy_pass URL; }
-
基于反向代理的负载均衡
upstream 名字 { server IP:PORT; server IP:PORT; } server { location / { proxy_pass upstream Name; }
-
动静分离
.php .jsp nginx反向代理给tomcat;静态html,css,img。Nginx自己处理
-
session一致性问题
1、session复制 tomcat 本身带有复制session的功能。(不讲) 2、共享session 需要专门管理session的软件, memcached 缓存服务,可以和tomcat整合,帮助tomcat共享管理session。