这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记
NGINX 介绍
1:高性能的HTTP和反向代理WEB服务器,同时也提供了IMAP/POP3/SMTP服务,
2:占用内存少,并发能力强,nginx可以支持5w个并发,而tomcat只能支持几百个并发连接的响应
正向代理/反向代理
正向代理:
通过vpn可以加速。可以访问外网
vpn相当于代理,代理会帮我们进行请求命令。类似香港的服务器,在帮我们请求外国的服务器。
这种用户的代理,为正向代理。
反向代理
可能有多个城市的服务器。
用户都访问同一个域名,代理就是来处理客户端的请求,让我们无感知的访问。
负载均衡
因为服务器的大小可能不同,我们希望更多的请求访问的是大的服务器。
Nginx的负载均衡策略:
1:轮询 :
一次循环 服务器1->服务器2->服务器3-> 服务器1->服务器2->服务器3....
2:加权轮询:
假如 服务器1:64,服务器2:16,
则nginx会把大部分发送到服务器1,来保证服务器性能最大化。
IP Hash
IP Hash对用户的ip进行hash操作,然后更具hash的结果将同一个客户端的ip的请求分发给同一台服务器处理,可以解决session共享问题。
session会保存在tomcat中,但是如果启动了很多服务器,有n个
tomcat,每个tomcat都可能存session 但是同一用户的session此时无法共享。可以加redis 。
现在还可以通过ip来计算,可以保证同一id一直在某服务器上。缺点是:
当这台服务器挂了,所有信息都丢失了。还得用redis(不知道这么用)
动静分离
动静分离,在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如: css, html, jpg, js等等文件),这些不需要经过后台处理的·文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
(从jar包开始加载是非常麻烦的)
所以,可以把静态资源放在nginx