Nginx+Tomcat多实例及负载均衡配置
时间:2022-07-25
本文章向大家介绍Nginx+Tomcat多实例及负载均衡配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Nginx+Tomcat多实例及负载均衡配置
采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡
01
安装nginx服务
安装所需的pcre库
tar zxf pcre-8.38.tar.gz
cd pcre-8.38
./configure
make && make install
cd ../
编译安装Nginx服务
tar zxf nginx-1.11.3.tar.gz
cd nginx-1.11.3
useradd nginx -s /sbin/nologin -M
yum install openssl openssl-devel -y
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.11.3 --with-http_ssl_module --with-http_stub_status_module
make && make install
nginx服务的相关介绍及编译参数介绍可参考公众号前面的文章,有关服务的详细配置说明都有涉及到
02
安装JDK环境
Tomcat需要JDK的环境,因此在安装之前需要先安装JDK环境,首先下载好相应的JDK软件包
tar xf jdk-8u60-linux-x64.tar.gz -C /application/
##无需编译直接解压到指定目录
ln -s /application/jdk1.8.0_60 /application/jdk
##创建软链接
sed -i.ori 'a export JAVA_HOME=/application/jdknexport PATH=JAVA_HOME/bin:JAVA_HOME/jre/bin:PATHnexport CLASSPATH=.CLASSPATH:JAVA_HOME/lib:JAVA_HOME/jre/lib:JAVA_HOME/lib/tools.jar' /etc/profile
##配置环境变量
source /etc/profile
##生效配置的环境变量
java -version
##查看JDK环境安装是否成功
03
安装配置Tomcat多实例
Tomcat的多实例配置也相当的简单,下载相应版本的软件,解压即可使用
tar xf apache-tomcat-8.0.27.tar.gz -C /application/
ln -s /application/apache-tomcat-8.0.27 /application/tomcat
echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
多实例安装配置如下
cp -a apache-tomcat-8.0.27 /application/tomcat8_1
cp -a apache-tomcat-8.0.27 /application/tomcat8_2
切换到相关目录修改相应的配置文件即可
(两个实例的配置文件改动的地方相同,只需要修改端口与站点目录即可)
cd /application/tomcat8_2/conf/
diff /application/tomcat/conf/server.xml ./server.xml
22c22
< <Server port="8005" shutdown="SHUTDOWN">
---
> <Server port="8012" shutdown="SHUTDOWN">
69c69
< <Connector port="8080" protocol="HTTP/1.1"
---
> <Connector port="8082" protocol="HTTP/1.1"
123c123
< <Host name="localhost" appBase="webapps"
---
> <Host name="localhost" appBase="/web/www/bbs"
创建站点目录
mkdir /web/www/{www,bbs}/ROOT -p
echo "hello">/web/www/www/ROOT/index.jsp
echo "world">/web/www/bbs/ROOT/index.html
启动多实例
/application/tomcat8_1/bin/startup.sh
/application/tomcat8_2/bin/startup.sh
04
配置nginx
vim /application/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main 'remote_addr - remote_user [time_local] "
# 'status body_bytes_sent "
# '"
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream web_pools {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.jsp index.html index.htm;
proxy_pass http://web_pools;
}
}
}
查检语法与启动nginx服务
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx
05
测试负载均衡效果
for i in `echo {1..6}`;do curl 192.168.1.129;done
hello
world
hello
world
hello
world
表明负载均衡配置已经实现
- 你可能需要为你的 APP 适配 iOS 11
- Golang语言 redis 使用
- 页面结构化在 Android 上的尝试
- iOS 11: CORE ML—浅析
- 高性能网络编程7--tcp连接的内存使用
- Android 平台 Native 代码的崩溃捕获机制及实现
- go语言变参,匿名函数的多种用法
- 问题帖子--Concurrent Read/Write Map
- Android 混淆那些事儿
- H5 直播避坑指南
- H5 和移动端 WebView 缓存机制解析与实战
- 根据IE版本加载不同CSS样式的方法小结,解决低版本IE兼容问题
- Linux下用dd命令测试硬盘的读写速度
- 教你 Debug 的正确姿势——记一次 CoreMotion 的 Crash
- 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 数组属性和方法
- Kafka核心API——AdminClient API
- PyQt5 技术篇-调用颜色对话框(QColorDialog)获取颜色,调色板的调用。
- Kafka的安装与配置
- PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
- PyQt5 技术篇-设置滚动条拉动位置,scrollArea滚动条位置设置方法。
- CentOS8更换yum源后出现同步仓库缓存失败的问题
- log4j配置方式
- 基于MHA搭建MySQL Replication集群高可用架构
- PyQt5 技巧篇-解决相对路径无法加载图片问题,styleSheet通过"相对"路径加载图片,python获取当前运行文件的绝对路径。
- 基于MMM搭建MySQL Replication集群高可用架构
- Python 技术篇-按任意格式灵活获取日期、时间、年月日、时分秒。日期格式化。
- 当删库时如何避免跑路
- Python 句法错误:"SyntaxError: invalid character in identifier",原因及解决方法
- Python3 多线程问题:ModuleNotFoundError: No module named 'thread',原因及解决办法。
- 文件传输和秒传