Tomcat 简介
Tomcat 最初是由 Sun 的软件构架师詹姆斯邓肯. 戴维森开发
安装完 Tomcat 后安装路径下面的目录和文件, 是使用或者配置 Tomcat 的重要文件
Tomcat 重要目录
bin: 存放启动和关闭 Tomcat 脚本
conf: 存放 Tomcat 不同的配置文件
doc: 存放 Tomcat 文档
lib/japser/common: 存放 Tomcat 运行需要的库文件
logs: 存放 Tomcat 执行时的 LOG 文件
src: 存放 Tomcat 的源代码
webapps:Tomcat 的主要 Web 发布目录
work: 存放 jsp 编译后产生的 class 文件
Nginx 应用
Nginx 是一款非常优秀的 HTTP 服务器软件
支持高达 50 000 个并发连接数的响应
拥有强大的静态资源处理能力
运行稳定
内存, CPU 等系统资源消耗非常低
目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器, 提升整个站点的负载并发能力
Nginx 负载均衡实现原理
Nginx 实现负载均衡是通过反向代理来实现的
反向代理原理
Nginx 配置反向代理的主要参数
upstream 服务池名 { }
配置后端服务器池, 以提供响应数据
proxy_pass http:// 服务池名 http://xn--zfry6a403b25e/
配置将访问请求转发给后端服务器池的服务器处理
Nginx+Tomcat 负载均衡群集实验
实验环境
Nginx 服务器 IP 地址: 192.168.80.177
Tomcat1 服务器 IP 地址: 192.168.80.151
Tomcat2 服务器 IP 地址: 192.168.80.178
client 测试机
搭建负载均衡
在 Tomcat1,Tomcat2 服务器上安装配置 Tomcat 服务 (Tomcat2 上网页内容为 accp 其他配置一样)
- [[email protected] ~]# systemctl stop firewalld.service // 关闭防火墙
- [[email protected] ~]# mkdir /abc
- [[email protected] ~]# mount.cifs //192.168.100.8/LNMP-C7 /abc/
- [[email protected] ~]# cd /abc/tomcat/
- [[email protected] tomcat]# tar zxvf jdk-8u91-Linux-x64.tar.gz -C /usr/local/ // 解压 JDK
- [[email protected] tomcat]# VIM /etc/profile // 配置环境变量
- ...
- export JAVA_HOME=/usr/local/jdk1.8.0_91
- export JRE_HOME=${
- JAVA_HOME
- }/jre
- export CLASSPATH=.:${
- JAVA_HOME
- }/lib:${
- JRE_HOME
- }/lib
- export PATH=${
- JAVA_HOME
- }/bin:$PATH
- [[email protected] tomcat]# source /etc/profile // 刷新配置文件
- [[email protected] tomcat]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/ // 解压
- [[email protected] tomcat]# cd /usr/local/
- [[email protected] local]# mv apache-tomcat-8.5.16/ tomcat
- [[email protected] local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/ // 将启动和关闭脚本便于系统识别
- [[email protected] local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
- [[email protected] local]# mkdir -p /Web/webapp1 // 创建站点
- [[email protected] local]# VIM /Web/webapp1/index.jsp // 写入 jsp 网页内容
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <html>
- <head>
- <title>JSP test1 page</title>
- </head>
- <body>
- <% out.println("Welcome KGC Web");%> // 输出信息
- </body>
- </HTML>
- [[email protected] local]# VIM /usr/local/tomcat/conf/server.xml // 修改 Tomcat 配置文件
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true">
- <Context docBase="/web/webapp1" path=""reloadable="false"> ## 添加站点信息
- </Context>
- [[email protected] ~]# startup.sh // 启动服务
在 Nginx 服务器上安装配置 Nginx 服务
- [[email protected] ~]# systemctl stop firewalld.service ## 关闭防火墙
- [[email protected] ~]# setenforce 0
- [[email protected] ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y ## 安装环境必要组件
- [[email protected] ~]# mkdir /abc
- [[email protected] ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/ ## 挂载
- Password for [email protected]//192.168.100.3/LNMP-C7:
- [[email protected] ~]# cd /abc/
- [[email protected] abc]# tar zxvf nginx-1.12.2.tar.gz -C /usr/local/ ## 解压
- [[email protected] abc]# useradd -M -s /sbin/nologin nginx ## 创建系统用户
- [[email protected] abc]# cd /usr/local/nginx-1.12.2/
- [[email protected] nginx-1.12.2]# ./configure \ ## 配置
- > --prefix=/usr/local/nginx> --user=nginx> --group=nginx> --with-http_stub_status_module> --with-http_gzip_static_module> --with-http_flv_module
- [[email protected] nginx-1.12.2]# make && make install ## 编译安装
- [[email protected] nginx-1.12.2]# VIM /usr/local/nginx/conf/nginx.conf
- #keepalive_timeout 0;
- keepalive_timeout 65;
- #gzip on;
- upstream tomcat-server { #添加地址池
- server 192.168.80.151:8080 weight=1;
- server 192.168.80.178:8080 weight=1;
- }
- server {
- listen 80;
..... 省略
- location / {
- root HTML;
- index index.HTML index.htm;
- proxy_pass http://tomcat-server; #添加代理, 调用服务器地址池
- }
- [[email protected] nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ## 便于系统识别
- [[email protected] nginx-1.12.2]# nginx ## 开启服务
使用 client 测试机访问 nginx 代理服务器
动静分离
在 Nginx 服务器上修改 Nginx 配置文件
- [[email protected] nginx-1.12.2]# VIM /etc/init.d/nginx // 编写 service 启动脚本
- #!/bin/bash
- # chkconfig: - 99 20
- # description: Nginx Service Control Script
- PROG="/usr/local/nginx/sbin/nginx"
- PIDF="/usr/local/nginx/logs/nginx.pid"
- case "$1" in
- start)
- $PROG
- ;;
- stop)
- kill -s QUIT $(cat $PIDF)
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- reload)
- kill -s HUP $(cat $PIDF)
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload}"
- exit 1
- esac
- exit 0
- [[email protected] nginx-1.12.2]# chmod +x /etc/init.d/nginx
- [[email protected] nginx-1.12.2]# chkconfig --add nginx
- [[email protected] nginx-1.12.2]# VIM /usr/local/nginx/conf/nginx.conf
- server {
... 省略...
- location ~.*.jsp$ { // 匹配 jsp 页面跳转代理服务器池
- proxy_pass http://tomcat-server;
- proxy_set_header Host $host;
- }
- location / {
- root HTML/test; ## 修改站点
- index index.HTML index.htm;
- proxy_pass http://tomcat-server;
- }
- [[email protected] nginx-1.12.2]# VIM /usr/local/nginx/HTML/index.HTML // 编写静态网页
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta http-equiv="content-type" content="text/html;charset=utf-8">
- <title>
- 静态页面
- </title>
- <style>
- body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial,
- sans-serif; }
- </style>
- </head>
- <body>
- <h1>
- 静态页面
- </h1>
- <p>
- 这是个静态页面
- </p>
- </body>
- </HTML>
- [[email protected] nginx-1.12.2]# service nginx stop ## 关闭开启服务
- [[email protected] nginx-1.12.2]# service nginx start
在 Tomcat1,Tomcat2 服务器上创建 jsp 动态页面
- [[email protected] ~]# mkdir /usr/local/tomcat/webapps/test
- [[email protected] ~]# VIM /usr/local/tomcat/webapps/test/index.jsp
- <!DOCTYPE HTML>
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
- %>
- <%@ page import="java.util.Date" %>
- <%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd"> <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> 动态页面 </title> </head> <body> <div> 动态页面 1 </div> </body> </HTML>
// 在 Tomcat2 上修改为动态页面 2 // 访问静态 http://192.168.13.177/ // 访问动态 http://192.168.13.177/test/index.jsp
配置 Nginx 处理静态图片, Tomcat 处理动态页面
分别在两台 Tomcat 服务器上配置
[[email protected] ~]# VIM /usr/local/tomcat/webapps/test/index.jsp <body> <div > 动态页面 </div><br><img src="11.jpg"> // 添加页面图片 </body> [[email protected] local]# VIM /usr/local/tomcat/conf/server.xml // 在第 149 行下追加以下条目, <Context docBase="/usr/local/tomcat/webapps/test" path=""reloadable="false"> </Context> [[email protected] test]# shutdown.sh // 关闭重启 [[email protected] test]# startup.sh
在 Nginx 服务器上修改 Nginx 配置文件
[[email protected] nginx-1.12.2]# VIM /usr/local/nginx/conf/nginx.conf location ~.*\.(gif|jpg|jpeg|PNG|bmp|swf|CSS)$ { root HTML/test; expires 30d; } [[email protected] nginx-1.12.2]# mkdir /usr/local/nginx/HTML/test [[email protected] nginx-1.12.2]# cp /abc/11.jpg /usr/local/nginx/HTML/test/ [[email protected] HTML]# service nginx restart // 重启服务
使用 client 测试
来源: http://www.bubuko.com/infodetail-3342605.html