目录
1.实验准备
2.部署Tomcat多实例
3.部署Nginx 和Tomcat动静分离
3.1 Nginx配置
3.2 Tomcat配置
1.实验准备nginx服务器:
192.168.112.99
Tomcat服务器:
1. 192.168.112.100
2. 192.168.112.101
2.部署Tomcat多实例
首先准备好jdk的安装
安装好之后,配置Tomcat的环境变量
vim /etc/profile.d/tomcat.sh #tomcat1 export CATALINA_HOME1=/usr/local/tomcat/tomcat1 export CATALINA_BASE1=/usr/local/tomcat/tomcat1 export TOMCAT_HOME1=/usr/local/tomcat/tomcat1 #tomcat2 export CATALINA_HOME2=/usr/local/tomcat/tomcat2 export CATALINA_BASE2=/usr/local/tomcat/tomcat2 export TOMCAT_HOME2=/usr/local/tomcat/tomcat2 source /etc/profile.d/tomcat.sh 记得刷新环境变量
为了不让两个服务之间的端口号冲突,我们需要修改第二台实例的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml#22行,修改Server prot,默认为8005 -> 修改为8006 修改为8081 #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010 ---------------------------------------------------------------------------------------------------------- 第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器默认监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。 ----------------------------------------------------------------------------------------------------------
完成之后,我们需要修改两个服务的启动和关闭文件,以精确控制两个服务
vim /usr/local/tomcat/tomcat1/bin/startup.sh # ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # ----------------------------------------------------------------------------- ##添加以下内容 export CATALINA_BASE=$CATALINA_BASE1 export CATALINA_HOME=$CATALINA_HOME1 export TOMCAT_HOME=$TOMCAT_HOME1 vim /usr/local/tomcat/tomcat1/bin/shutdown.sh # ----------------------------------------------------------------------------- # Stop script for the CATALINA Server # ----------------------------------------------------------------------------- export CATALINA_BASE=$CATALINA_BASE1 export CATALINA_HOME=$CATALINA_HOME1 export TOMCAT_HOME=$TOMCAT_HOME1 vim /usr/local/tomcat/tomcat2/bin/startup.sh # ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # ----------------------------------------------------------------------------- export CATALINA_BASE=$CATALINA_BASE2 export CATALINA_HOME=$CATALINA_HOME2 export TOMCAT_HOME=$TOMCAT_HOME2 vim /usr/local/tomcat/tomcat2/bin/shutdown.sh # ----------------------------------------------------------------------------- # Stop script for the CATALINA Server # ----------------------------------------------------------------------------- export CATALINA_BASE=$CATALINA_BASE2 export CATALINA_HOME=$CATALINA_HOME2 export TOMCAT_HOME=$TOMCAT_HOME2
启动服务
这两个端口已经开启
我们通过浏览器来访问一下
Tomcat多实例部署完成
3.部署Nginx 和Tomcat动静分离
3.1 Nginx配置
首先准备一台已经安装Nginx的服务器——安装Nginx过程详见“Nginx网站服务”——外Nginx服务器设置静态页面的主页,和动态页面的转发
在Nginx更目录下修改主页
修改nginx配置文件
nginx.conf
upstream tomcat_server {
server 192.168.112.101:8080 weight=1;
server 192.168.112.100:8081 weight=1;
}
server {
listen 80;
server_name www.czh.com;
charset utf-8;
#access_log logs/host.access.log main;
#配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理
location ~ .*.jsp$ {
proxy_pass http://tomcat_server;
#设置后端的Web服务器可以获取远程客户端的真实IP
##设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认HOST的值为proxy_pass指令设置的主机名。如果反向代理服务器不重写该请求头的话,那么后端真实服务器在处理时会认为所有的请求都来自反向代理服务器,如果后端有防攻击策略的话,那么机器就被封掉了。
proxy_set_header HOST $host;
##把$remote_addr赋值给X-Real-IP,来获取源IP
proxy_set_header X-Real-IP $remote_addr;
##在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#配置Nginx处理静态图片请求
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/local/nginx/html;
expires 10d;
}
location / {
root html;
index index.html index.htm;
}
......
}
......
}
配置完成后验证一下文件是否有误
3.2 Tomcat配置
配置192.168.112.101
在tomcat配置文件中创建主页
修改配置文件
vim /usr/local/tomcat/conf/server.xml #由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
同样的配置192.168.112.100
修改配置文件
vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>JSP test2 page #指定为 test2 页面 <% out.println("动态页面 2,http://www.test2.com");%>
完成后,测试一下
负载均衡
访问图片和静态页面直接交给nginx来处理



