系列文章目录
文章目录
- 系列文章目录
 
- 前言
 
- 1、nginx是什么?
 - 2.代理和反向代理、透明代理
 
- 正向代理(Forward Proxy)
 
- 1、访问本无法访问的服务器B,如下图
 - 2、加速访问服务器B
 - 3、Cache作用
 - 4、客户端访问授权
 - 5、隐藏访问者的行踪
 
- 反向代理(reverse proxy)
 
- 1、保护和隐藏原始资源服务器
 - 2、负载均衡
 
- 透明代理
 
- 3.window配置nginx+tomcat集群
 
- 实操:一个电脑上安装多个Tomcat
 - 3.1在一台电脑上安装两个tomcat
 - 打包——打包成war包
 - 怎么让代理去决定访问哪一台服务器或者访问哪个地址
 - 怎么让同一个服务器的sessionID一样
 
前言
Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx](https://file.cfanz.cn/uploads/png/2023/03/31/14/Xc9bb2D35b.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_02](https://file.cfanz.cn/uploads/png/2023/03/31/14/09BET5eWJ3.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_03](https://file.cfanz.cn/uploads/png/2023/03/31/14/0M652M0c6W.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_04](https://file.cfanz.cn/uploads/png/2023/03/31/14/3768IQ7008.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_05](https://file.cfanz.cn/uploads/png/2023/03/31/14/bGDBF9V2b7.png)
 Tomcat最大支持的并发数是2000,那么问题来了,如果同时有4000的用户并发量,这个时候咋办
 像淘宝、京东的双十一双十二,一秒钟的用户并发量远远不止两三千
 所以这时候是怎么处理的呢,他们远远不止一台服务器
 也就是说远远不止一个Tomcat
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_06](https://file.cfanz.cn/uploads/png/2023/03/31/14/05V89Ee1c9.png)
 这里又涉及到一个分流问题,我们怎么就让客户端1-2000号就访问第一台服务器呢?
 这个是分流的知识,我们先不管
 我们考虑另外一个问题
 如果有多台服务器,那么他们的ip地址是不是不一样,是的,ip地址不一样
 我们这个时候就需要一个人来帮我们做事情
 这个人就叫代理
 代理他们记住我们上面那三台集群的电脑的ip地址
 然后我们所有的客户端都去访问代理,而这个代理自动的给我们分配某个用户访问哪个服务器
 所以代理其实是实现集群的一种方式,可以解决高并发的问题
 实操
 一个电脑上安装多个Tomcat(因为安装多个Linux比较复杂)
 假如我们是安装两个Tomcat,我们需要注意这两个Tomcat不能端口号一致
 我们看下面的 3.window配置nginx+tomcat集群
1、nginx是什么?
代理实际上是一种思想
集群,意思就是多台服务器
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_07](https://file.cfanz.cn/uploads/png/2023/03/31/14/18OaCDMFcb.png)
2.代理和反向代理、透明代理
正向代理(Forward Proxy)
1、访问本无法访问的服务器B,如下图
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_08](https://file.cfanz.cn/uploads/png/2023/03/31/14/A043Y0R41a.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_09](https://file.cfanz.cn/uploads/png/2023/03/31/14/V8d9D54c81.png)
2、加速访问服务器B
这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。还是如图1.2 假设用户A到服务器B,经过R1路由器和R2路由器,而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。
3、Cache作用
Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。还如上图所示,如果在用户A访问服务器B某数据J之前,已经有人通过代理服务器Z访问过服务器B上得数据J,那么代理服务器Z会把数据J保存一段时间,如果有人正好取该数据J,那么代理服务器Z不再访问服务器B,而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据J,而不用千里迢迢的去服务器B下载数据了。
4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网,挼下图1.3
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_10](https://file.cfanz.cn/uploads/png/2023/03/31/14/885L8dJ1AU.png)
5、隐藏访问者的行踪
如下图1.4 我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_11](https://file.cfanz.cn/uploads/png/2023/03/31/14/553V06VMA1.png)
反向代理(reverse proxy)
1、保护和隐藏原始资源服务器
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_12](https://file.cfanz.cn/uploads/png/2023/03/31/14/9U863eP3BX.png)
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。 使用反向代理服务器的作用如下:
2、负载均衡
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_13](https://file.cfanz.cn/uploads/png/2023/03/31/14/dbbV516Q8L.png)
透明代理
如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 。
 透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图3.1
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_14](https://file.cfanz.cn/uploads/png/2023/03/31/14/X2fY7H972X.png)
3.window配置nginx+tomcat集群
实操:一个电脑上安装多个Tomcat
一个电脑上安装多个Tomcat(因为安装多个Linux比较复杂)
 假如我们是安装两个Tomcat,我们需要注意这两个Tomcat不能端口号一致
 我们看下面的
3.1在一台电脑上安装两个tomcat
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_15](https://file.cfanz.cn/uploads/png/2023/03/31/14/84E1N60d94.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_16](https://file.cfanz.cn/uploads/png/2023/03/31/14/dAW70113Hc.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_17](https://file.cfanz.cn/uploads/png/2023/03/31/14/CR4U990S79.png)
 当然实际上是可以在eclipse或者idea里面改端口号的,但是集群的时候一般直接在配置文件里面改,这样比较快
 需要注意的是,这个配置文件下面一共是有三个端口的
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_18](https://file.cfanz.cn/uploads/png/2023/03/31/14/81aA4T6Jf7.png)
 原端口号分别是 8005、8080、8009
 我们需要把这三个端口都改一下
 最简单的办法是 把这三个端口号都加1,就行了,一般来说,没有啥问题
 修改完成之后,我们来创建一个web项目
 我们这个web项目也很简单,就让它显示一个session就行了
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_19](https://file.cfanz.cn/uploads/png/2023/03/31/14/JH2121IdfV.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_20](https://file.cfanz.cn/uploads/png/2023/03/31/14/Q355LL6ed3.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_21](https://file.cfanz.cn/uploads/png/2023/03/31/14/K6d8b61813.png)
 Tomcat最好选择对应的版本,这样比较不容易出现报错,也符合逻辑
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_22](https://file.cfanz.cn/uploads/png/2023/03/31/14/55362AEU95.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_23](https://file.cfanz.cn/uploads/png/2023/03/31/14/6Y0NGO56fE.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_24](https://file.cfanz.cn/uploads/png/2023/03/31/14/1789OW22G9.png)
 替换一次字符,否则不能输入中文,比较麻烦。容易乱码等一系列问题
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_25](https://file.cfanz.cn/uploads/png/2023/03/31/14/2A70OEdfTb.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_26](https://file.cfanz.cn/uploads/png/2023/03/31/14/bL3CF48T0M.png)
 浏览器跟服务器进行访问的时候会创建一个session
 为了以后方便,我们可以直接把这个项目改成Utf-8的,这样以后新建jsp什么的默认就是UTF-8的了
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_27](https://file.cfanz.cn/uploads/png/2023/03/31/14/O250f913T0.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_28](https://file.cfanz.cn/uploads/png/2023/03/31/14/D5dS236169.png)
 如果这样设置没有用,我测试了,设置完之后,新基jsp页面默认还是ISO-8859-1字符,而不是UTF-8 真的没用,那么我们就点击项目来设置吧,不设置全局了
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_29](https://file.cfanz.cn/uploads/png/2023/03/31/14/c52A6Qa867.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_30](https://file.cfanz.cn/uploads/png/2023/03/31/14/7000c98K4G.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_31](https://file.cfanz.cn/uploads/png/2023/03/31/14/28N3Ocb55G.png)
 如果没有用那就自己改一下吧
 下面看看效果
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_32](https://file.cfanz.cn/uploads/png/2023/03/31/14/1QEa76Sc9X.png)
 然后直接打包
打包——打包成war包
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_33](https://file.cfanz.cn/uploads/png/2023/03/31/14/O22X5RDPC3.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_34](https://file.cfanz.cn/uploads/png/2023/03/31/14/ZUGHe9cG9J.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_35](https://file.cfanz.cn/uploads/png/2023/03/31/14/572dXQ26a9.png)
 war包导出来之后我们继续做什么呢,我们把它丢到集群里面去分别放到Tomcat的这个目录
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_36](https://file.cfanz.cn/uploads/png/2023/03/31/14/3U7M7UYYM5.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_37](https://file.cfanz.cn/uploads/png/2023/03/31/14/27e128RA9M.png)
然后分别启动8080和8081的Tomcat
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_38](https://file.cfanz.cn/uploads/png/2023/03/31/14/7I3W32J5YE.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_39](https://file.cfanz.cn/uploads/png/2023/03/31/14/30a33JEa26.png)
 然后我们就会发现,两个Tomcat都能够启动同一个项目,只是他们的端口不一样,因为端口一样是不能在同一台电脑运行的
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_40](https://file.cfanz.cn/uploads/png/2023/03/31/14/7N6c2c4cAc.png)
 改一下项目
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_41](https://file.cfanz.cn/uploads/png/2023/03/31/14/912JKf4YCF.png)
 那么,问题来了
 我们给别人用的时候肯定不能给两个地址给别人,因为他也不知道哪个并发多哪个并发少
 所以这时候代理就显得非常重要了
 那我们怎么做呢
 怎么让代理去决定访问哪一台服务器或者访问哪个地址
怎么让代理去决定访问哪一台服务器或者访问哪个地址
所以我们看图,我们不应该直接去访问服务器,而是直接去访问代理,然后由代理去负责访问哪台服务器
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_42](https://file.cfanz.cn/uploads/png/2023/03/31/14/066GM4M06F.png)
 安装的时候注意,有专门给windows用的和专门给Linux用的版本,不要搞错,这个很好理解我们安卓手机下载app的时候也有很多版本,有安卓版(.app)window版(.exe)还有苹果的ISO版本
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_43](https://file.cfanz.cn/uploads/png/2023/03/31/14/RA2M4cWJ8E.png)
 所以nginx也是一样的,我们需要安装对应的版本
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_44](https://file.cfanz.cn/uploads/png/2023/03/31/14/7X3604EO5B.png)
 安装之前,我们需要配置一下,为什么需要配置呢
 这是因为我们需要让nginx知道它下面有哪些集群。这样它才能够去自动的选择一个Tomcat去给你启动程序
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_45](https://file.cfanz.cn/uploads/png/2023/03/31/14/8SeL28142D.png)
 需要注意的是,我们这个nginx的端口号,默认是80,是否会有冲突
 比如,我们的SVN的服务器默认端口也是80
 那么解决办法是什么呢,很简单,要么就是卸载掉SVN的服务端,要么就是把SVN服务端的服务停掉
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_46](https://file.cfanz.cn/uploads/png/2023/03/31/14/4Z254942B4.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_47](https://file.cfanz.cn/uploads/png/2023/03/31/14/c122220IPA.png)
注意:端口被占用了是打不开的
 默认端口号要是被占用了,可以改成81
 参考文档:javascript:void(0)添加链接描述
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_48](https://file.cfanz.cn/uploads/png/2023/03/31/14/8WJ8I70W26.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_49](https://file.cfanz.cn/uploads/png/2023/03/31/14/1M2c2e31NY.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_50](https://file.cfanz.cn/uploads/png/2023/03/31/14/c2824CD8cF.png)
输入localhost 如果改了端口为81就输入 localhost:81
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_51](https://file.cfanz.cn/uploads/png/2023/03/31/14/faN791E49a.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_52](https://file.cfanz.cn/uploads/png/2023/03/31/14/Q60COW01JT.png)
 出现这个,就说明我们的代理服务器部署成功了
下面我们就应该让代理服务器 nginx去知道,他下面有哪些服务器
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_53](https://file.cfanz.cn/uploads/png/2023/03/31/14/DHPQUd2222.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_54](https://file.cfanz.cn/uploads/png/2023/03/31/14/8WJ8I70W26.png)
 我们在server上加一段如下两段代码
 upstream server_list{
 server 127.0.0.1:8080;
 server 127.0.0.1:8081;
 }
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_55](https://file.cfanz.cn/uploads/png/2023/03/31/14/2D5222c672.png)
proxy_pass http://server_list;
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_56](https://file.cfanz.cn/uploads/png/2023/03/31/14/6Kc1QG2X2W.png)
 注意如果这个页面启动不成功,可能是配置不对,再改一下配置试试
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_57](https://file.cfanz.cn/uploads/png/2023/03/31/14/7226CH4D85.png)
有几个就配置几个网址
 配置完成之后,需要重启代理服务器
 在windows里面重启nginx很简单,先把之前的关了
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_58](https://file.cfanz.cn/uploads/png/2023/03/31/14/CG605854H7.png)
 正常来讲是两个,不是上面那样有4个,4个的原因可能是端口80没改的时候运行了一下81的时候又运行了一下
 正常配置之后,再启动代理服务器,是进入到这个默认页面
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_59](https://file.cfanz.cn/uploads/png/2023/03/31/14/5b27930J45.png)
 再瞄一眼,我实测成功的的配置文件
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_57](https://file.cfanz.cn/uploads/png/2023/03/31/14/7226CH4D85.png)
 然后就很简单,可以测试了
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_61](https://file.cfanz.cn/uploads/png/2023/03/31/14/04cfJ2fcX2.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_62](https://file.cfanz.cn/uploads/png/2023/03/31/14/V7AV06bWD1.png)
 代理自动决定帮我们访问哪个服务器
 很简单
 nginx会自动分流,它里面有一个分流机制
 至于是什么分流机制,我们不用去深入的研究它
 还有一个问题
 如果是同一个浏览器,按道理他们的sessionID要一样才对
 如果不一样就一定会有问题
我们就没有办法去判断用户是否登录了,每刷新一下次都需要用户重新登录,就会出现大bug
 而我们现在,正是存在这个问题,两个服务器的sessionID不一样
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_63](https://file.cfanz.cn/uploads/png/2023/03/31/14/1619QK7218.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_64](https://file.cfanz.cn/uploads/png/2023/03/31/14/6Kc16fY268.png)
怎么让同一个服务器的sessionID一样
1.一种解决办法:一个用户进来以后只在tomcat1上进行操作,另一个用户进行只在tomcat2上进行操作.
2.session的共享
 一种使用tomcat广播机制完成session的共享(不推荐的方式)
一种使用redis服务器的方式完成session的共享(推荐的方式)
 下面说一下,不推荐的方式,假如没有学习redis的时候,或者redis出了问题,情况紧急的时候可以当做备用的方式
 tomcat广播机制完成session的共享
 修改配置文件前,先把两个Tomcat停了再修改
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_65](https://file.cfanz.cn/uploads/png/2023/03/31/14/2JZ2c5JS27.png)
 关掉之后
 我们再来打开Tomcat的配置文件
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_66](https://file.cfanz.cn/uploads/png/2023/03/31/14/23JPfEQDeK.png)
 ctrl+f 查找 Cluster 我们发现默认集群是关闭的(被注释了)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_67](https://file.cfanz.cn/uploads/png/2023/03/31/14/6LYO8OJ81O.png)
 取消掉注释,然后关掉继续 在web-app里面也要加个配置:配置一个
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_服务器_68](https://file.cfanz.cn/uploads/png/2023/03/31/14/7U0Xc717b6.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_69](https://file.cfanz.cn/uploads/png/2023/03/31/14/I90XF6DZM1.png)
 另外一个Tomcat也是一样的配置
 全部完成之后,重启Tomcat服务器即可实现
 下面再看看完整的操作
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_70](https://file.cfanz.cn/uploads/png/2023/03/31/14/b8Y8M6Bde2.png)
 实测,确实可以实现同一个浏览器,sessionID可以保持一致!!!
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_代理服务器_71](https://file.cfanz.cn/uploads/png/2023/03/31/14/6A777E6DJ0.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_windows_72](https://file.cfanz.cn/uploads/png/2023/03/31/14/1KI7Y30CX3.png)
![在这里插入图片描述 nginx01_nginx的原理和简介、代理是一种思想、是一种实现集群的方式、代理[解决高并发]:正向代理、反向代理的理解、项目打包、==Nginx 就好像一个领导,它来命令你这个请求由哪台服务器处理_nginx_73](https://file.cfanz.cn/uploads/png/2023/03/31/14/da1282a92M.png)
                










