Nginx 实现负载均衡是通过反向代理来实现的。
1、nginx是一款非常优秀的 HTTP 服务器软件:
2、目前已有很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力。
1、服务端接受来自客户端的请求中,既有静态资源也有动态资源。
2、设置 nginx 处理静态图片,后端 Tomcat 处理动态页面
###实验拓扑图###
角色 | IP地址 |
---|---|
Nginx | 192.168.220.131 |
Tomcat01 | 192.168.220.136 |
Tomcat02 | 192.168.220.137 |
实验环境说明:
搭建nginx,之前博客有详细介绍。
(1)配置 JAVA 环境
1、安装 jdk
rpm -ivh jdk-8u201-linux-x64.rpm
安装后的位置在:/usr/java/
2、配置环境变量
vim /etc/profile,在文件末尾添加以下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
使环境变量生效:
source /etc/profile
3、使用 java -version 命令检查是否已安装成功
(2)安装和启动 Tomcat
1、解压缩包到指定路径,/usr/local/
tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
2、解压完成后,生成 apache-tomcat-9.0.16 文件夹,改名为 Tomcat
mv apache-tomcat-9.0.16/ tomcat
3、为了方便控制 tomcat的开启和关闭,我们可以创建一个软连接
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
(1)创建目录
mkdir -p /web/webapp1
vim /web/webapp1/index.jsp
添加以下内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome to test site, http://www.test1.com");%>
</body>
</html>
目录:/usr/local/tomcat/conf
vim server.xml
添加以下代码:
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
./shutdown.sh
./startup.sh
(4)浏览器访问一下网页,检查是否成功
(5)第二台 Tomcat 部署和第一台一模一样,但是为了页面显示区别,在 /web/webapp1/index.jsp 文件中,稍作修改,将 test1 改为 test2
注意:在企业网中,群集中的 Tomcat 网站内容是一模一样的,客户无论访问到哪个Tomcat,提供的网站都是一致的。但是这边,为了展示实验效果,站点内容不一样,是为了区分在客户端能够看出是哪个Tomcat 提供了服务回应。
(1)文件位置:/usr/local/nginx/conf/nginx.conf
1、添加服务池:
upstream tomcat-server {
server 192.168.220.136:8080 weight=1;
server 192.168.220.137:8080 weight=1;
}
2、在 location 段,添加以下代码,意为调用服务池(协议,端口等等)
proxy_pass http://tomcat-server;
killall -1 nginx
这个架构中,nginx 只作为代理服务器而存在,我们作为用户访问网页,根本就不知道后面是哪一台具体提供服务的服务器,只需要将请求发送给 nginx 代理服务器,由 nginx 代理服务器,调用后台的Tomcat 给用户提供回应。