Java教程

CentOS6.5下使用Nginx+多个tomcat实现反向代理

本文主要是介绍CentOS6.5下使用Nginx+多个tomcat实现反向代理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、Nginx安装及配置

1、安装包

(1)版本

1.6.2(Nginx可作为Web服务器,反向代理服务器以及邮件服务器)

(2)来源

http://nginx.org/download/nginx-1.6.2.tar.gz      //可先本地下载再传到centOS系统里,也可以直接Linux里使用wget下载获取

2、安装过程

(1)先安装相关编译插件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

(2)再安装PCRE,让Nginx支持ReWrite功能

1 cd /usr/local/src/                //且到指定目录
2 wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz             //通过网络直接下载安装包
3 tar zxvf pcre-8.35.tar.gz    //解决安装包
4 cd pcre-8.35                      //进入资源目录
5 ./configure                         //执行脚本配置
6 make && make install          //编译安装
7 pcre-config --version            //查看pcre版本,确认安装是否成功

(3)安装Nginx

1 cd /usr/local/src/             //切到指定目录
2 wget http://nginx.org/download/nginx-1.6.2.tar.gz  //下载安装包
3 tar zxvf nginx-1.6.2.tar.gz       //解压安装包
4 ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35     //配置路径
5 make                 //编译
6 make install       //编译安装
7 /usr/local/webserver/nginx/sbin/nginx -v    //查看版本

(4)配置及一般常用命令

1 /usr/sbin/groupadd www                  
2 /usr/sbin/useradd -g www www    //创建Nginx运行使用用户
//修改/usr/local/webserver/nginx/conf/nginx.conf配置文件,初始时可以先不修改,后续再根据需要进行修改即可
/usr/local/webserver/nginx/sbin/nginx         //启动Nginx
ps -ef|gref nginx    //查看进程,确认nginx是否已运行即可



//常用命令
/usr/local/webserver/nginx/sbin/nginx -t     //检查配置文件正确性
/usr/local/webserver/nginx/sbin/nginx -s reload    //重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen    //重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop        //停止 Nginx

3、遇到的问题及解决方法

(1)centOS6.5里使用yum命令安装编译工具及库文件失败(Cannot find a valid baseurl)?

原因:yum相关的网络服务失效

解决方法:

1 vi /etc/resolv.conf    //进入该文件的编辑页面,使用Google的DNS服务, 包括8.8.8.8和8.8.4.4,即插入两行数据:nameserver 8.8.8.8   nameserver 8.8.4.4;先通过方向键定位到修改的位置,按i键进入输入模式,修改内容,最后按ctrl+c退出输入模式,输入:wq保存退出即可
2 service network restart    //重启网络即可

(2)centOS6.5里使用yum命令安装编译工具及库文件失败(No package  xxxxx available)?

原因:远程镜像站点问题,即yum无法通过镜像地址找到对应包安装,一个原因是因为CentOS6停止维护更新,并下架了包括官方所有的CentOS6源(包括国内的镜像站)

解决方法:安装epel企业版拓展包,使用阿里云的centos-vault源即可

a.安装epel拓展包

1 cat /etc/redhat-release   //确认你的centos版本
2 wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm   //下载安装包,也可以本地先下载再传到Linux里
3 sudo rpm -ivh epel-release-6-8.noarch.rpm  //安装epel包

b.更改配置,用阿里云的centos-vault源

1 vi /etc/yum.repos.d/CentOS-Base.repo  //进入该配置文件编辑页面
2 //把CentOS-Base.repo内容替换如下
3 内容较多,替换内容如截图所示,如果需要完整文件的朋友,可评论留言联系我
4 
5 yum clean all && yum makecache    //清除下缓存

 

 

解决效果截图:(再次使用yum命令进行安装软件)

 

 

 

 

二、JDK安装及配置

1、安装包

(1)版本

JDK1.8(java软件开发包,包含java程序运行环境jre等等)

(2)来源

可自行去官网下载,或是评论留言联系我提供jdk-8u221-linux-x64.tar

2、安装过程

(1)安装包先传输到Linux里(使用secureCRT自带的sftp工具,或是xftp或filezilla工具等等也可以)

(2)使用tar zxvf jdk-8u221-linux-x64.tar进行安装包解压

(3)配置环境变量

1 vi /etc/profile    //进入环境变量配置文件
2 //在该文件done下增加以下内容
3 export JAVAHOME=JDK目录
4 export PATH=$JAVAHOME/bin:$PATH
5 export CLASSPATH=.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jar

(4)使配置生效以及检查版本

1 source /etc/profile       //使刚才修改的配置生效
2 echo $JAVAHOME        //检查配置环境是否生效
3 java -version              //查看jdk是否安装成功

 

三、Tomcat安装及配置

1、安装包

(1)版本

apache-tomcat8.5(web项目容器,可以作为web服务器)

(2)来源

可自行去官网下载,或是评论留言联系我提供apache-tomcat-8.5.73.tar

2、安装过程

(1)安装包先传输到Linux里

(2)使用tar zxvf apache-tomcat-8.5.73.tar进行安装包解压

(3)配置环境变量

1 vi /etc/profile    //进入环境变量配置文件
2 //在该文件done下增加以下内容
3 export TOMCATHOME=TOMCAT目录
4 export PATH=$JAVAHOME/bin:$TOMCATHOME/bin:$PATH

(4)启动服务

1 cd tomcat安装目录/bin      //进入bin目录
2 ./startup.sh              //启动服务即可

(5)本地浏览器输入服务器ip:8080访问,正常情况则会出现tomcat的管理页面

3、遇到的问题及解决方法

(1)本地浏览器输入服务器ip:8080,无法访问?

原因:服务器8080端口未放开

解决方法:

1)开放8080端口

2)或通过命令/etc/init.d/iptables stop直接关闭防火墙(不推荐,如果该系统仅是用于学习则可)

 

四、基于Nginx+Tomcat实现反向代理

1、要点说明

(1)先规划好服务器信息

//本人资源有限,只能是在同一台机器上作实验...但是使用不同端口也可以进行区分达到一样的目的效果
Nginx:      192.168.0.103(不带端口默认使用80)
Tomcat1:    192.168.0.103:8080
Tomcat2:    192.168.0.103:8090

(2)基本原理

      通过访问Nginx服务,Nginx通过反向代理实现将请求转向到Tomcat服务器上,转发给哪一台Tomcat服务器上,这就涉及到Nginx的负载均衡算法了,此处不再深究,使用的是轮询算法即一台一台地访问

2、配置过程

(1)首先,在前面我们已经安装了一个Tomcat服务,使用的是8080端口,此处我们把它当作Tomcat1;

(2)我们再按一样的方法进行Tomcat2的安装,进入conf/server.xml配置文件,把服务端口更改为8090;

(3)同时,为了在页面上便于区分访问的是哪个Tomcat的服务页面,我们分别进入两个Tomcat的webapps/Root下,修改index.jsp,在页面里<body></body>标签合适的位置加入区别信息即可:例如tomcat1里使用<h1>I'm tomcat1:8080</h1>,tomcat2里使用<h1>I'm tomcat2:8090</h1>

(4)分别使用./startup.sh启动服务,先通过浏览器分别访问Tomcat1和Tomcat2,确认两个服务正常

(5)配置Nginx

1 vi /usr/local/nginx/conf/nginx.conf  //进入nginx.conf配置页面
2 //在server节点上方加入下面的数据
3 upstream backend{              //配置backend模块服务的集群机器
4         server  192.168.0.103:8080;
5         server  192.168.0.103:8090;
6 }
7 //在server节点里的location / {} 里第一行添加
8 proxy_pass http://backend;    //当请求类型为/,则将请求转发到backend模块里

(6)使用教程最上方的重载配置文件和重启nginx服务即可

(7)在浏览器输入192.168.0.103,不断刷新页面,你会发现有时访问是是Tomcat1服务有时访问的是Tomcat2服务,此时,恭喜你,你成功了~~

 

这篇关于CentOS6.5下使用Nginx+多个tomcat实现反向代理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!