今日学习笔记

关于Nginx

为Nginx准备的多个Tomcat

1.为什么要准备多个Tomcat?

在解释为什么要提供多个Tomcat之前,首先解释一下为什么要额外提供Tomcat
Nginx是一个web服务器,很快速,但是不能作为Servlet 容器独立运行,所以通常的工作方式是Nginx配合Tomcat来协同工作。 这就是为什么要单独提供Tomcat,以方便配合Nginx进行工作
后续的负载均衡,session共享需要多个Tomcat来配合

2.运行

第一个Tomcat

启动之后访问地址:

http://127.0.0.1:8111/

会自动跳转到 

http://127.0.0.1:8111/login.jsp
 
3.在tomcat里跟踪信息输出,用于观察图片静态资源的访问是否是在当前tomcat上发生

 

 4.负载均衡

准备里两个一模一样的tomcat,只是他们的端口号不一样

第一个Tomcat的端口号为8111,那么设置第二个为8222

5.反向代理

先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个FQ软件,通过FQ软件才能访问youtube. FQ软件就叫做正向代理
所谓的反向代理,指的是用户要访问youtube,但是youtube悄悄地把这个请求交给bilibili来做,那么bilibili就是反向代理了
在当前教程指的就是访问nginx,但是nginx把请求交给tomcat来做

6.启动Tomcat

分别启动端口号为8111和8222的Tomcat

 

然后修改nginx.conf,主要是30-42行

 
location / {
proxy_pass http://127.0.0.1:8111;
}
 
location / 表示处理所有请求
proxy_pass http://127.0.0.1:8111; 表示把请求都交给http://127.0.0.1:8111来处理
 
7.实现代理
使用如下命令重启 nginx 
nginx -s reload
然后访问地址:
http://127.0.0.1/
就会观察到已经反向代理到tomcat了,此时显示的登陆地址不再是http://127.0.0.1:8111
 

 

8.意义

既然直接通过127.0.0.1:8111/login.jsp 可以访问,那么干嘛要通过127.0.0.1/login.jsp 去反向代理到tomcat呢? 为什么不直接使用tomcat呢?

因为nginx在处理静态文件的吞吐量上面比tomcat好很多,通常他们俩配合,不会把所有的请求都如本例所示的交给tomcat, 而是把静态请求交给nginx,动态请求,如jsp, servlet,ssm,

struts等请求交给tomcat. 从而达到动静分离的效果

9.静态分离

所谓的动静分离就是指图片,css, js之类的都交给nginx来处理,nginx处理不了的,比如jsp 就交给tomcat来处理
好处是nginx处理静态内容的吞吐量很高,比tomcat高多了,这样无形中提升了性能

10.修改nginx.conf

在locaction下面添加一个新的location: 

location ~\.(css|js|png)$ {
root C:/Users/X7TI/Downloads/tomcat_8111/webapps/ROOT;
}


这表示所有的css js png访问都由nginx来做,访问的地址是 

C:/Users/X7TI/Downloads/tomcat_8111/webapps/ROOT 


这里要注意,填写本地地址的时候,要用正斜杠 / 不要用反斜杠 \

再到tomcat的输出日志里观察,就会发现,只访问了jsp, 所有的css,js,png都不会经过 tomcat,而是由nginx自己负责处理了

 

 11.负载均衡

负载均衡的概念就是当访问量很大的时候,一个 Tomcat 吃不消了,这时候就准备多个 Tomcat,由Nginx按照权重来对请求进行分配,从而缓解单独一个Tomcat受到的压力

12.进行第二个反向代理

 

 修改conf文件

首先增加一个upstream ,用来指向这两个tomcat

upstream tomcat_8111_8222{
server 127.0.0.1:8111 weight=1;
server 127.0.0.1:8222 weight=2;
}
 

然后修改location,反向代理到上述配置 

location / {
proxy_pass http://tomcat_8111_8222;
}
 

weight表示权重,值越大,被分配到的几率越大

使用命令 nginx -s reload 重启,然后使劲访问

 
http://127.0.0.1/login.jsp
 
可以观察到对jsp的访问,被分配到了不同的 Tomcat上
posted @ 2021-03-03 16:29  计算机语言学习日志  阅读(34)  评论(0)    收藏  举报