【菜鸟dei学习】Nginx简单配置:负载均衡与动静分离
反向代理
首先我们来说说***正向代理***。比如你要访问资源A,但是访问不到,你可以通过访问资源B,再通过它你访问到资源A,这即是正向代理。可能多个用户都通过资源B访问资源A,它隐藏了客户端的访问身份,代替客户与服务器交互,这就是代理。
反向代理,我们指的是我们访问nginx,但是nginx把请求转给tomcat,这样的模式和正向代理相反,即为反向代理。
为什么要做反向代理?
既然通过http://127.0.0.1:8080/login.jsp可以直接访问,为何要通过http://127.0.0.1/login.jsp去反向代理到tomcat?
配置负载均衡
负载均衡的概念就是当访问量很大的时候,一个 Tomcat 吃不消了,这时候就准备多个 Tomcat,由Nginx按照权重来对请求进行分配,从而缓解单独一个Tomcat受到的压力(权重模式)
配置upstream多节点,在server{}中设置反向代理到多节点
完成上图的配置后,我发现,静态资源无法访问。
修改配置
配置动静分离
因为nginx在处理静态文件时比tomcat高效,所以在使用nginx时,通常不会把所有的请求都如本例所示的交给tomcat, 而是把静态请求交给nginx,动态请求,如jsp, servlet,ssm,struts等请求交给tomcat. 从而达到动静分离的效果
(取自https://how2j.cn/)
在nginx配置文件Server{ }中,location /下方添加以下一段话
这表示所有的css js png等访问都由nginx来做,访问的地址是C:/Users/CJH/tomcat_1/webapps
其他问题
Session会话问题
通过负载均衡,我们把请求分发到不同的 Tomcat 来缓解服务器的压力,但是这里存在一个问题: 当同一个用户第一次访问tomcat_8080 并且登录成功, 而第二次访问却被分配到了tomcat_8081, 这里并没有记录他的登陆状态,那么就会呈现未登录状态了,严重伤害了用户体验。
解决方案:
1:ip_hash
通过ip地址标记用户,如果多次请求都是从同一个ip来的,那么就都分配到同一个tomcat.这样就不会出现问题了了. 处理手段也很简单,在upstream最后加上ip_hash;就行了。不过这种方案并不完美,当如下几种情况发生时就有问题:1. 大量请求来之某个局域网,那么相当于就没有负载均衡了。2. 如果tomcat_8080挂了,那么此时nginx只能把请求交给tomcat_8081,但是这里却没有记录session,用户体验依然受影响。
2:用Redis来存取session.
Cookie问题
相同域名不同端口的两个应用,cookie名字、路径都相同的情况下,后面cookie会覆盖前面cookie
修改两个tomcat的conf/context.xml分别为
严格来说这个不是nginx的问题,但是因为多节点布在了同ip的不同端口,于是存在了cookie覆盖的问题,故在此解决。
毕
【菜鸟dei学习】Nginx简单配置:负载均衡与动静分离相关推荐
- Nginx+Tomcat实现负载均衡与动静分离
Nginx+Tomcat实现负载均衡与动静分离 一.Nginx负载均衡和动静分离 1.Nginx 实现负载均衡是通过反向代理实现 反向代理(Reverse Proxy) 是指以 代理服务器(例:Ngi ...
- Nginx+Tomcat 搭建负载均衡、动静分离(tomcat多实例)
文章目录 一.Tomcat多实例配置 1.关闭防火墙 2.将软件包上传到/opt目录下 3.安装JDK 4.安装Tomcat 5.配置tomcat环境变量 6.修改tomcat2中的server.xm ...
- nginx服务器的负载均衡和动静分离(未完)
安装nginx,我的博客里面有介绍源码和yum安装. 实战:使用nginx实现动静分离的负载均衡集群 实战:使用haproxy实现负载均衡集群 LB负载均衡集群分为两类:LVS(四层)和Nginx或p ...
- 一文解读Nginx+Tomcat实现负载均衡、动静分离
前言 一.Nginx 负载均衡实现原理 1.Nginx 实现负载均衡是通过反向代理实现 反向代理(Reverse Proxy) 是指以 代理服务器(例:Nginx) 来接受 internet 上的连接 ...
- Nginx负载均衡与动静分离
文章目录 反向代理与负载均衡 nginx动静分离实验 在nginx主机上配置负载均衡 在nginx主机上配置动静分离 反向代理与负载均衡 nginx通常被用作后端服务器的反向代理,这样就可以很方便的实 ...
- Nginx+Tomcat负载均衡、动静分离
目录 一:Nginx实现负载均衡原理 二:Nginx动静分离原理 三:Nginx+Tomcat负载均衡.动静分离实验 3.1部署Nginx负载均衡器 3.1.1关闭防火墙,将安装nginx所需的软件包 ...
- 使用Nginx负载均衡及动静分离
使用Nginx负载均衡及动静分离 目录 使用Nginx负载均衡及动静分离 一.系统拓扑图 二.环境准备 三.服务器安装 1.jdk,tomcat,mysql 2.Nginx的安装 2.1 gcc安装 ...
- Nginx总结(反向代理、负载均衡、动静分离)篇
一.Nginx简介 什么是Nginx Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上ngimx,的并发能力确实在同 ...
- Nginx之反向代理与负载均衡实现动静分离实战
Nginx之反向代理与负载均衡实现动静分离实战 什么是反向代理与负载均衡 Nginx仅仅作为Nginx proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果. 负载均衡指的是 ...
- Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例
场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...
最新文章
- C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
- CSS——京东首页实战总结
- return 返回值的问题
- ZZULIOJ 1098: 复合函数求值(函数专题)
- Linux开发_调试与安全_gdb_peda简介
- 还在忍受磁力搜索网站不忍直视的广告么?18年最新最好用的bt磁力搜索网站介绍
- windows10+Ubuntu双系统卸载旧Ubuntu并重装Ubuntu(绝对安全)
- 根据经纬度查询位置百度api
- 2021宇哥八套卷总结—第三套试卷分析
- adf输稿器是什么_送稿器是什么
- Flutter 编译失败shared_preferences_macos
- 【渝粤教育】广东开放大学 跨文化商务沟通 形成性考核 (42)
- Node.js中实时显示下载进度并解压文件
- 【读书笔记】《解忧程序员》读后感
- win10改win7 bios设置方法
- CAD偏移尺寸出问题该如何解决?
- 重装系统时出现windows root\system32\ntoskrnl.exe 损坏或者丢失?解决方法。。。。。。
- Word域切换及更新快捷键域代码
- 华为浏览器html页样式没了,华为TE40web页面无发登录如何解决?
- 2016年中国信息无障碍十大进展