现在的企业级项目,可以说99.99%以上的项目,都是集群部署,当集群中的一个节点出现故障,会自动切换另一个节点,实现故障自动转移,现在就基于Nginx+tomcat搭建一套完整的集群。
一、环境介绍
PC1:centos7 IP:192.168.10.10 部署Tomcat应用及Nginx
PC1:centos7 IP:192.168.10.11 部署Tomcat应用
物理机:192.168.10.100 用于作客户端
JDK:1.8.0_171
Tomcat:apache-tomcat-8.5.75
首先要保证PC1、2及物理机之间能相互通信,PC1、2中安装好Java运行环境及Tomcat
二、集群架构图
在开始配置之前,先介绍一下整体的架构图,如下
Nginx作为反向代理,接收用户的请求,将请求发送给服务器端,服务器端处理后返回结果,当其中一个服务器宕机后,Nginx自动切换另一台服务器响应用户请求
三、Tomcat配置
在PC1上安装Tomcat,因为是两个不同的机器,不会存在Tomcat端口冲突的问题,因此不需要修改Tomcat下server.xml配置文件中的的端口,为了方便测试,分别使用两台服务器上的tomcat目录webapps下的默认页面index.html文件并在index.htm里在H2标题里添加PC机的IP,后面就基于这个文件的响应来测试集群 。
在物理机上分别访问PC1和PC2上的应用
http:// 192.168.10.10:8080
http:// 192.168.10.11:8080
这说明Tomcat的应用已经部署完成,并能成功访问,接下来开始配置Nginx
四、Nginx安装
1安装方法一:源码编译安装
基础环境 centos7.6 mini
目录:/usr/local/src
1、安装前准备(根据各软件最新版本信息更改url)
下载nginx、openssl、zlib、pcre
登录Nginx官网nginx: download,下载nginx,得到nginx.tar文件
进入到nginx目录,配置并安装nginx
-
cd /usr/local/src
-
wget http://nginx.org/download/nginx-1.10.2.tar.gz
-
wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
-
wget http://zlib.net/zlib-1.2.11.tar.gz
-
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
2安装(顺序不要错)
安装make
yum -y install gcc automake autoconf libtool make
安装gcc编译环境
# yum install gcc-c++
安装pcre
-
# tar zxvf pcre-8.43.tar.gz
-
# cd pcre-8.40
-
# ./configure && make && make install
如安装时提示:make: *** [aclocal.m4] 错误 127
解决: 先执行 autoreconf -ivf 加载缺失文件 后 再执行 make就可以了
安装openssl:
-
tar zxvf openssl-fips-2.0.10.tar.gz
-
cd openssl-fips-2.0.10
-
./config && make && make install
安装zlib
-
tar zxvf zlib-1.2.11.tar.gz
-
cd zlib-1.2.11
-
./configure && make && make install
安装nginx
-
tar zxvf nginx-1.10.2.tar.gz
-
cd nginx-1.10.2
-
./configure && make && make install
这样安装完成后,nginx的路径为/usr/local/nginx/sbin/nginx
启动Nginx服务
进入到/usr/local/nginx/sbin/,直接运行nginx文件,启动Nginx服务
启动和停止Nginx
在浏览器上输入地址http://192.168.10.10,出现如下界面,说明Nginx安装启动成功
2Nginx安装方法二:
查看CentOS的版本
cat /etc/redhat-release
添加资源库
在 CentOS 系统上安装 Nginx ,得先去添加一个资源库:
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
安装nginx
yum -y install nginx
使用命令
-
systemctl stop nginx.service #停止nginx服务
-
systemctl start nginx.service #打开nginx服务
-
systemctl restart nginx.service #重启nginx服务
-
systemctl status nginx.service #查看nginx服务状态
验证nginx安装成果:
进入到/usr/local/nginx/sbin/,直接运行nginx文件,启动Nginx服务
启动和停止Nginx
在浏览器上输入地址http://192.168.10.10,出现如下界面,说明Nginx安装启动成功
五、配置Nginx+Tomcat集群
nginx的配置文件主要是nginx.conf,在安装路径/usr/local/nginx/下的conf目录中,如没有nginx.conf文件,只有nginx.conf.default文件,可以根据nginx.conf.default文件,copy一份生成nginx的配置文件nginx.conf
修改nginx.conf配置文件,如下
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;#keepalive_timeout 0;
keepalive_timeout 65;#gzip on;
upstream myserver{
server 192.168.130.129:8080 weight=5 max_fails=2;
server 192.168.130.128:8080 weight=1 max_fails=2;
}
server {
listen 80;#监听80端口
server_name myserver;#charset koi8-r;
#access_log logs/host.access.log main;location / {
root html;
index index.html index.htm;
proxy_pass http://myserver; #这里的myserver必须要和upstream中指定的一致
#proxy_redirect on;
proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
重新检查并加载配置文件
[root@ls sbin]# ./nginx -s reload
启动验证
验证1:同时启动PC1和PC2上的tomcat服务,在浏览器上输入验证地址:http://192.168.10.10,多刷新几次,会发现有时请求PC2上的服务,有时请求PC1上的服务,请求PC2的服务比PC1上的次数多,因为权重比例是5:1的嘛.
到此,Tomcat的集群就已经配置完成,Nginx会自动识别,如果有未响的服务器,Nginx会自动将此服务器踢出集群中,当故障恢复后,Nginx会自动将它加入到集群中,整个过程都自动化,我们唯一要做的是修复故障的服务器。
链接:https://www.jianshu.com/p/24ebf5437a9e 架构系列二:使用Nginx+tomcat实现集群部署_kity9420的专栏-CSDN博客_nginxtomcat集群部署
来源:网络
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。