Nginx的大杂烩

版权声明:已开启版权声明 https://blog.csdn.net/M_Kerry/article/details/83069108

1.什么是Nginx

1.官方解释: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

  1. 简言之:Nginx是高性能的web服务器,但是不能作为servlet容器独立运行,所以通常用来和Tomcat做负载均衡

2.作用 域

  1. 反向代理:代理服务器请求(如:访问youtube(假设能发出请求),但是youtube悄悄地把这个请求交给bilibili来做,那么bilibili就是反向代理)
    正向代理:代理客户请求(如:翻墙软件)
  2. 负载均衡:负载均衡的概念就是当访问量很大的时候,一个 Tomcat 吃不消了,这时候就准备多个 Tomcat,由Nginx按照权重来对请求进行分配,从而缓解单独一个Tomcat受到的压力
  3. 动静分离:Nginx对静态资源的处理要比tomcat强太多。
    一图胜千言
    在这里插入图片描述

3. 举个稀松平常的例子(反衬作用)

在这里插入图片描述

URLFilter ,拦截所有请求,打印当前访问服务器的端口号,以及访问的资源

这就是 没有 负载均衡,没有动静分离,以及没有反向代理的例子。

你看,访问的端口号 全是 8080 ,说明没有负载均衡,只有 端口号为8080的这个tomcat服务器在提供服务。

你看,访问的资源有 png,css,js这些静态资源和jsp,说明 没有动静分离,所有资源都交给了tomcat处理。

你看,访问的资源路径 都是指定了 8080端口号,说明没有Nginx的反向代理,统统交给了8080这个服务器。

非反向代理举例
我直接 通过 127.0.0.1:8080/login.jsp 访问, 因为指定了 8080 端口,就相当于直接去访问了 8080 这个tomcat服务器。
反向代理
我访问 127.0.0.1/login.jsp ,不指定端口号,Nginx接收到这个请求,把请求交给了 8080 这个tomcat服务器(反向代理),同时把请求中的静态资源留下自己处理,只把 jsp请求 交给tomcat(动静分离)。
如果有多个tomcat工作,Nginx可以把请求按照权重分配给不同的tomcat(负载均衡)

4. session共享

Nginx负载均衡减轻服务器压力的同时,会不可避免的带来一个问题,那就是session共享
当同一个用户第一次访问tomcat_8111 并且登录成功, 而第二次访问却被分配到了tomcat_8222, 这里并没有记录他的登陆状态,那么就会呈现未登录状态了,严重伤害了用户体验。
解决办法有两种

1.ip_hash;
2.redis+tomcat-sessoin-manager(本文采用这种)
也就是把 session级别的信息,放到redis 缓存中。记录用户的登录信息。

详情点击 http://how2j.cn/k/nginx/nginx-share-session/1569.html?p=37958

最后图片镇楼,总结

5.演示效果图。

演示结果图

在这里插入图片描述

在这里插入图片描述

怎么配置的呢?

先放个网址,讲的很好。
http://how2j.cn/k/nginx/nginx-tutorial/1565.html?p=37958

上面有 演示用到的 多个tomcat,nginx 以及redis 等工具。
并且有详细的配置步骤。

感兴趣的话,要不大家自己研究研究?

猜你喜欢

转载自blog.csdn.net/M_Kerry/article/details/83069108
今日推荐