部署Tomcat及负载均衡
时间:2022-07-24
本文章向大家介绍部署Tomcat及负载均衡,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先需要三台服务器
Tomcat1 106.52.224.243
Tomcat2 106.52.151.30
nginx 106.52.152.122
三台服务器关闭selinux和防火墙
systemctl stop firewalld
setenforce 0
配置tomcat1服务器
在安装Tomcat之前必须先安装JDK
rpm -ivh jdk-8u181-linux-x64.rpm
java -version
安装Tomcat
tar zxf apache-tomcat-7.0.54.tar.gz -C /usr/local/
cd /usr/local/
解压后生成apache-tomcat-7.0.54文件夹,将该文件夹移动到/usr/local 下,并改名为tomca
mv apache-tomcat-7.0.54/ tomcat7
启动tomcat,查看端口号
/usr/local/tomcat7/bin/startup.sh
netstanpl -anpl |grep 8080
打开浏览器进行测试
Tomcat配置相关说明
Tomcat的主目录为/usr/local/tomcat7 (1)主要目录说明
| - - -bin/:存放windows或linux平台上启动和关闭Tomcat的脚本文件
| - - -conf/:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
| - - -lib/:存放Tomcat运行需要的库文件(JARS)
| - - -logs/:存放Tomcat执行时的LOG文件
| - - -webapps:Tomcat的主要Web发布目录(包括应用程序示例)
| - - -work:存放jsp编译后产生的class文件
配置文件说明
catalina.policy:权限控制配置文件
catalina.properties:Tomcat属性配置文件
context.xml:上下文配置文件
logging.properties:日志Log相关配置文件
server.xml:主配置文件
tomcat-users.xml:manager-gui管理用户配置文件
web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置
建立java的Web站点
首先在根目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件
mkdir -pv /web/webapp1
在webapp1目录下建立一个index.jsp的测试网页
vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test page1</title>
</head>
<body>
<% out.println("106.52.224.243");%>
</body>
修改Tomcat的server.xml文件,在host段增加context段
vim /usr/local/tomcat7/conf/server.xml
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
关闭Tomcat,在重新启动
/usr/local/tomcat7/bin/shutdown.sh #关闭tomcat
/usr/local/tomcat7/bin/startup.sh #启动tomcat
然后通过浏览器访问
配置Tomcat2服务器
tomcat2 server配置方法基本同tomcat1,其中包括 关闭selinux和防火墙 安装JDK 安装配置tomcat 创建/web/webapp1 目录,修改配置文件server.xml,将网站文件目录更改到/web/webapp1/ 路径下 在/web/webapp1/ 路径下建立index.jsp,为了区别将测试网页index.jsp的内容更改
vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test page2</title>
</head>
<body>
<% out.println("106.52.151.30");%>
</body>
然后关闭Tomcat,在重新启动,打开浏览器访问
安装nginx
安装相关软件包
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc+ -y
建立用户和组
groupadd www
groupadd -g www www -s /bin/false
解压并安装Nginx
tar zxf nginx-1.6.3.tar.gz -C /usr/src/
cd /usr/src/nginx-1.6.3/
./configure --prefix=/usr/local/nginx --user=www --group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module
make && make install
参数含义:
- -user=,--group= 指定运行的用户和组
- -with-file-aio 启用文件修改支持
- -with-http_stub_status_module 启用状态统计
- -with-http_gzip_static_module 启用gzip静态压缩
- -with-http_flv_module 启用flv模块,提供寻求内存使用基于时间的偏移量文件
- -with-http_ssl_module 启用SSL模块
配置nginx.conf
在http {...}中加入以下代码,设定负载均衡的服务器列表,weight参数表示权值,权值越高被分配到的概率越大。为了使测试效果比较明显,这里把权值设置为一样
vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_server {
server 106.52.224.243:8080 weight=1;
server 106.52.151.30:8080 weight=1;
}
在http {...} - server {...} - location / {...} 中加入一行
proxy_pass http://tomcat_server;}
然后保存退出 测试Nginx配置文件是否正确
/usr/local/nginx/sbin/nginx -t
启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
测试负载均衡效果
- 教你一招 | 用Python实现简易可拓展的规则引擎
- 经典算法学习之动态规划
- C++ 隐式类型转换
- IE漏洞调试之CVE-2013-3893
- C++ STL之迭代器注意事项
- 设计3D标签为什么要有一个字符间隙tracking?为什么要重写getPrefferedSize()?画三遍的顺序有讲究
- C++STL之整理算法
- Offset2lib攻击测试:看我如何全面绕过64位Linux的内核防护
- C++ STL之查找算法
- 教你一招 | Python3新特性(一) :字符串
- C++ STL之set的基本操作
- Android ClassLoader详解
- 揭秘银行木马Chthonic:网银大盗ZeuS的最新变种
- C++STL之map的基本操作
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 只要十步,你就可以应用表达式树来优化动态调用
- 宏任务和微任务的一个小事
- 如何使用ES6的新特性async await进行异步处理
- java9-可以在interface中定义私有方法了
- 继承
- ES5新增方法
- django 重写user表 继承 AbstractUser 出现创建用户密码是明文
- Element表单嵌套数据验证
- 表格中的输入框验证
- 如何设置Element表格显示或者隐藏列
- Python 二进制,十进制,十六进制转换
- 原生node处理get和post请求
- 如何在Vue中自己实现v-model
- 【STM32F429】第1章 当前主流的小型嵌入式GUI
- 【Unity游戏开发】升级Unity2019后,资源管线后处理采坑记录