目录
一、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;
}
测试访问
发表评论