目录
一、Nginx负载均衡实现原理
Nginx实现负载均衡是通过反向代理实现
- Nginx服务器作为前端,Tomcat服务器作为后端,Web页面请求由Nginx服务来进行转发
- 但是不是把所有的Web请求转发,而是将静态页面请求Nginx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理
- Tomcat是属于轻量级的应用服务器,可以接受访问量可能会不足,所以我们需要多台Tmocat服务器,然后通过Nginx配置权重来进行挑选Tomcat服务器去进行处理,负载均衡的一种策略
1、反向代理原理
- 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Intetnet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
-
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理方式的方式称为反向代理服务。
Nginx配置反向代理的主要参数
upstream 服务池名{}
2、Nginx静态处理优势
- Nginx处理静态页面的效率远高于Tomcat的处理能力
- 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
- Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3 .6M
- Nginx处理静态资源的能力是Tomcat处理的6倍
3、Nginx动静分离原理
服务端收到客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
二、Nginx + Tomcat负载均衡、动静分离实验
1、环境准备
一台Nginx服务器,两台Tomcat服务器
Nginx:192.168.127.128
Tomcat1:192.168.127.199
Tomcat2:192.168.127.198
2、动静分离配置
2.1Tomcat1配置
tomcat1 server配置
创建动态页面文件
mkdir /usr/local/tomcat/yyh
vim /usr/local/tomcat/webapps/yyh/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP yyh page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.yyh.com");%>
</body>
</html>
添加虚拟主机配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/yyh" path="" reloadable="true" />
</Host>
2.2 Tomcat2配置
添加虚拟主机配置
2.3 Nginx server 配置
准备静态页面和静态图片
修改配置文件
upstream tomcat {
server 192.168.127.199:8080 weight=1;
server 192.168.127.198:8080 weight=1;
}
server {
listen 80;
server_name www.yyh.com;
location ~ .*\.jsp$ {
proxy_pass http://tomcat;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
测试访问