¶Nginx是什么
- 一个高性能的
web代理服务器
- nginx占用内存少、支持高并发,最高可达 5w 个并发量
- 开源,可用于商业用途,使用配置简单,中文社区也比较活跃
- 支持热部署 ,在不打断用户请求的情况下更新版本(⚠️是nginx版本,不是应用版本)
¶正向和反向代理区别
¶nginx配置文件理解
- nginx默认的配置,也可以自行修改,换端口,换location的路径和index首页
- 再来一张菜鸟上面的截图,很详细
¶nginx实现负载均衡的几种策略
负载均衡其实就是利用多个服务器集群,将客户端的高并发请求分发到不同的服务器来减轻压力
- 简单的集群配置
- 轮询(AB…AB…交替处理请求,相当于列表循环)
- 权重(weight):
- IP绑定(ip_hash)
- 服务响应时间最短(fair):
- 当前连接最少(least_conn)
- 轮询(AB…AB…交替处理请求,相当于列表循环)
¶session共享问题
- 当同一个用户第一次访问tomcat_8111 并且登录成功, 而第二次访问却被分配到了tomcat_8222, 这里并没有记录他的登陆状态,那么就会呈现未登录状态了,严重伤害了用户体验。
- 解决办法:
使用ip_hash绑定策略
¶高可用
¶反向代理服务器高可用
- 当某一台服务器出现问题了,变成了down状态,我们要选择第二台服务器,所以我们在
location节点
下添加proxy_connect_timeout 1
,目的是在连接超过1秒后(防止请求握手服务器失败后处于一直等待状态),请求自动轮询到下一台没有宕机的服务器去。
¶nginx高可用
- 使用keepalived来设置主从nginx,防止nginx宕机事故的发生,nginx宕机后启动第二个nginx
教程参考
¶nginx解决跨域
- 解决办法:在相对应的
location节点
中添加以下内容
add_header Access-Control-Allow-Origin *; |
¶nginx开启https协议
- 需要ssh证书,教程参考
¶nginx静态资源部署(动静分离)
- 将静态资源部署在
Nginx
上(即:html页面放在nginx安装目录下的html文件夹中,图片等静态资源要在配置文件中的server节点中的location节点中配置
) - 动态资源请求(一般为需要查接口查数据库的资源)则利用nginx做反向代理去对应的服务器后台获取数据
使用前后端动静分离后,可提升静态资源的访问速度(因为不要查后台),即使动态服务不可用,静态资源的访问也不会受到影响。
¶补充
linux系统中,http请求默认端口是80,而nginx配置文件中默认的端口也是80,所以没有改端口的情况下,访问linux的ip,默认也是80端口。