CentOS 7通过Nginx反向代理实现多Tomcat负载均衡,centosnginx
CentOS 7通过Nginx反向代理实现多Tomcat负载均衡,centosnginx
系统环境:CentOS 7.3 64位 + JDK 1.8
软件版本:Nginx 1.8.1,Tomcat 8
前言:本人一直对Nginx挺感兴趣的,之前也通过网上的许多文章学习Nginx,但是没有多大成效,而且加上前段时间比较忙,所以暂停对Nginx的学习,不过最近相对没那么忙了,而且想起之前我们项目经理对我说的一句话,问我知不知道Nginx,然后我跟他说了我之前学习Nginx的事情,但是他推荐我去看官方的英文文档,不过也有道理,这个东西既然是那家公司出的,那么肯定他官方的文档里面记载着所有的一切,虽然我高考时英语就只有50多分,满分是150分,即使看起来很吃力,我也还是坚持的看了一个下午,但是收获确实非常大,真的比起之前在网上看的许多文章收获多得很多很多。看懂后自己也使用了Nginx的反向代理实现了多个Tomcat的负载均衡,因此有了这篇文章,希望能对有需要的人带来帮助吧!
推荐:Nginx官方文档
一、JDK的安装
JDK安装的方法有很多种,这里就不一一列举了,简单的说一下我个人采取的方式。
首先通过官方下载Linux使用的JDK版本,这里使用的为jdk-8u162-linux-x64.tar.gz
然后在通过以下命令在CentOS中创建文件夹,并将下载好的JDK上传到该文件夹中并解压。
[root@VM_134_196_centos /]# cd /usr [root@VM_134_196_centos usr]# mkdir java [root@VM_134_196_centos usr]# cd java [root@VM_134_196_centos java]# tar -zxvf jdk-8u162-linux-x64.tar.gz解压完成后再通过以下命令配置JDK环境变量
[root@VM_134_196_centos java]# vim /etc/profile在文件中添加以下JDK的环境变量
################################# #JDK环境变量配置 ################################# export JAVA_HOME=/usr/java/jdk1.8.0_162 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jar export PATH=$PATH:${JAVA_HOME}/bin配置完成后使用以下命令让修改生效以及检测是否配置成功
[root@VM_134_196_centos java]# source /etc/profile [root@VM_134_196_centos java]# java -version java version "1.8.0_162" Java(TM) SE Runtime Environment (build 1.8.0_162-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)若成功输出JDK的版本号信息,则证明JDK的配置已经完成了。
至此我们的第一步就OK了!
二、Tomcat的安装
Tomcat的安装相对比较简单,只需要通过官方下载Linux版本的Tomcat再上传到服务器并解压即可。
这里使用的Tomcat版本为apache-tomcat-8.5.24.tar.gz,下载完成后通过通过以下命令在CentOS中创建文件夹,并将下载好的Tomcat上传至该文件夹进行解压,由于用到多个tomcat,所以解压后再修改tomcat的文件夹名以及端口号等。
创建文件夹
[root@VM_134_196_centos /]# cd usr [root@VM_134_196_centos usr]# mkdir tomcat解压Tomcat
[root@VM_134_196_centos usr]# cd tomcat/ [root@VM_134_196_centos tomcat]# tar -zxvf apache-tomcat-8.5.24.tar.gz修改Tomcat文件名
[root@VM_134_196_centos tomcat]# mv apache-tomcat-8.5.24 apache-tomcat-8.5.24-1修改Tomcat配置文件
[root@VM_134_196_centos tomcat]# vim apache-tomcat-8.5.24-1/conf/server.xml
配置文件所需修改的端口号如下图,保持各个Tomcat对应的端口号不一样即可
为了体现出各个Tomcat的区别,顺便修改一下各个tomcat的index.jsp文件用于区分tomcat
[root@VM_134_196_centos tomcat]# vim apache-tomcat-8.5.24-1/webapps/ROOT/index.jsp
最后各个tomcat都通过以下命令去启动
[root@VM_134_196_centos tomcat]# cd apache-tomcat-8.5.24-1/bin/ [root@VM_134_196_centos bin]# ./startup.sh再通过访问服务器测试各个Tomcat是否启动成功,我本人装了3个Tomcat,2个Tomcat 8以及1个Tomcat 7,Tomcat 7只是用于测试使用。
[root@VM_134_196_centos tomcat]# ls apache-tomcat-7.0.82-1 apache-tomcat-7.0.82.tar.gz apache-tomcat-8.5.24-1 apache-tomcat-8.5.24-2 apache-tomcat-8.5.24.tar.gz
至此,Tomcat的安装也完成了!
三、Nginx的安装
使用wget命令下载Nginx以及解压Nginx
[root@VM_134_196_centos /]# cd home [root@VM_134_196_centos home]# wget -c https://nginx.org/download/nginx-1.8.1.tar.gz [root@VM_134_196_centos home]# tar -zxvf nginx-1.8.1.tar.gz配置,这里使用的是默认配置,当然也可以自己配置,具体配置信息可查看Nginx安装配置
[root@VM_134_196_centos home]# cd nginx-1.8.1/ [root@VM_134_196_centos nginx-1.8.1]# ./configure编译安装
[root@VM_134_196_centos nginx-1.8.1]# make [root@VM_134_196_centos nginx-1.8.1]# make installNginx的默认安装路径是/usr/local/nginx,当然也可以通过以下指令查看nginx位置
[root@VM_134_196_centos nginx-1.8.1]# whereis nginx nginx: /usr/local/nginx [root@VM_134_196_centos nginx-1.8.1]# cd /usr/local/nginxNginx的常用指令有
nginx
stop — fast shutdownquit — graceful shutdownreload — reloading the configuration filereopen — reopening the log files
nginx:启动;
stop:查出nginx进程号再通过kill -9将进程关闭;
quit:等待任务处理完毕后再关闭nginx进程;
reload:重启nginx;
reopen:重启日志文件。
详情可查看官方文档Beginner’s Guide
测试Ngxin是否安装成功,先进入sbin文件夹对Nginx进行启动
[root@VM_134_196_centos nginx]# cd sbin/ [root@VM_134_196_centos sbin]# ./nginx然后直接访问服务器IP,若出现以下信息则说明到这里我们的Nginx就安装成功了!
四、配置Nginx完成反向代理、负载均衡
修改Nginx配置文件
[root@VM_134_196_centos sbin]# vim ../conf/nginx.conf
最终配置文件为
#user nobody; events { # 各工程最大连接数 worker_connections 1024; } http { # upstream 各服务器地址以及权重,权重越大代表访问率越大 upstream alie.com { server 119.29.81.95:8081 weight=2; server 119.29.81.95:8082 weight=2; server 119.29.81.95:8083 weight=1; } server { # 端口默认80 # 配置域名,由于没有域名,因此使用localhost server_name localhost; location / { # 反向代理,这里的地址与上面配置的upstream需一致,实现负载均衡 proxy_pass http://alie.com; proxy_redirect default; } } }最后重启Nginx并进行访问测试
[root@VM_134_196_centos sbin]# ./nginx -s reload直接访问服务器的80端口,Nginx便会通过反向代理将请求转发至配置好的服务器集群中,通过不断刷新可发现权重为2的两个服务器被访问到的次数是比权重为1的多的。
至此,使用Nginx通过反向代理实现负载均衡就已经完成啦。
评论暂时关闭