反向代理

首先我们来说说***正向代理***。比如你要访问资源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简单配置:负载均衡与动静分离相关推荐

  1. Nginx+Tomcat实现负载均衡与动静分离

    Nginx+Tomcat实现负载均衡与动静分离 一.Nginx负载均衡和动静分离 1.Nginx 实现负载均衡是通过反向代理实现 反向代理(Reverse Proxy) 是指以 代理服务器(例:Ngi ...

  2. Nginx+Tomcat 搭建负载均衡、动静分离(tomcat多实例)

    文章目录 一.Tomcat多实例配置 1.关闭防火墙 2.将软件包上传到/opt目录下 3.安装JDK 4.安装Tomcat 5.配置tomcat环境变量 6.修改tomcat2中的server.xm ...

  3. nginx服务器的负载均衡和动静分离(未完)

    安装nginx,我的博客里面有介绍源码和yum安装. 实战:使用nginx实现动静分离的负载均衡集群 实战:使用haproxy实现负载均衡集群 LB负载均衡集群分为两类:LVS(四层)和Nginx或p ...

  4. 一文解读Nginx+Tomcat实现负载均衡、动静分离

    前言 一.Nginx 负载均衡实现原理 1.Nginx 实现负载均衡是通过反向代理实现 反向代理(Reverse Proxy) 是指以 代理服务器(例:Nginx) 来接受 internet 上的连接 ...

  5. Nginx负载均衡与动静分离

    文章目录 反向代理与负载均衡 nginx动静分离实验 在nginx主机上配置负载均衡 在nginx主机上配置动静分离 反向代理与负载均衡 nginx通常被用作后端服务器的反向代理,这样就可以很方便的实 ...

  6. Nginx+Tomcat负载均衡、动静分离

    目录 一:Nginx实现负载均衡原理 二:Nginx动静分离原理 三:Nginx+Tomcat负载均衡.动静分离实验 3.1部署Nginx负载均衡器 3.1.1关闭防火墙,将安装nginx所需的软件包 ...

  7. 使用Nginx负载均衡及动静分离

    使用Nginx负载均衡及动静分离 目录 使用Nginx负载均衡及动静分离 一.系统拓扑图 二.环境准备 三.服务器安装 1.jdk,tomcat,mysql 2.Nginx的安装 2.1 gcc安装 ...

  8. Nginx总结(反向代理、负载均衡、动静分离)篇

    一.Nginx简介 什么是Nginx Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上ngimx,的并发能力确实在同 ...

  9. Nginx之反向代理与负载均衡实现动静分离实战

    Nginx之反向代理与负载均衡实现动静分离实战 什么是反向代理与负载均衡 Nginx仅仅作为Nginx  proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果. 负载均衡指的是 ...

  10. Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例

    场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...

最新文章

  1. C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
  2. CSS——京东首页实战总结
  3. return 返回值的问题
  4. ZZULIOJ 1098: 复合函数求值(函数专题)
  5. Linux开发_调试与安全_gdb_peda简介
  6. 还在忍受磁力搜索网站不忍直视的广告么?18年最新最好用的bt磁力搜索网站介绍
  7. windows10+Ubuntu双系统卸载旧Ubuntu并重装Ubuntu(绝对安全)
  8. 根据经纬度查询位置百度api
  9. 2021宇哥八套卷总结—第三套试卷分析
  10. adf输稿器是什么_送稿器是什么
  11. Flutter 编译失败shared_preferences_macos
  12. 【渝粤教育】广东开放大学 跨文化商务沟通 形成性考核 (42)
  13. Node.js中实时显示下载进度并解压文件
  14. 【读书笔记】《解忧程序员》读后感
  15. win10改win7 bios设置方法
  16. CAD偏移尺寸出问题该如何解决?
  17. 重装系统时出现windows root\system32\ntoskrnl.exe 损坏或者丢失?解决方法。。。。。。
  18. Word域切换及更新快捷键域代码
  19. 华为浏览器html页样式没了,华为TE40web页面无发登录如何解决?
  20. 2016年中国信息无障碍十大进展

热门文章

  1. 超全总结:Go 读文件的 10 种方法
  2. Go语言学习笔记—golang标准库xml包
  3. Lichee(三) Android4.0的目标产品目录与Lichee的纽带---extract-bsp
  4. go-testify和robfig
  5. STM32 多个定时器 多路PWM配置
  6. 【SHELL】快乐linux命令行之基本命令
  7. 如何简单有效的删除win10英语美式键盘
  8. 几个很重要的公众号,4万块移民德国
  9. 访问学者申请德国签证如果丢失了怎么办?
  10. win10 uwp 如何使用DataTemplate