linux+tomcat+nginx负载均衡

linux+tomcat+nginx负载均衡


一、简介

【Nginx】 大名鼎鼎,麻雀虽小五脏俱全,它拥有小而稳且高效的特性。为目前大多数中小企业所使用。nginx可以做以下几件事:

  • 反向代理
  • 负载均衡
  • 动静分离
  • 网页、图片缓存

【Tomcat】 是一个免费开放源代码的 Web 应用服务器,具有开源免费、容易安装、 容易使 用、占用资源小、易于和其他软件集成等优点。 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载 平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感 兴趣的程序员都可以更改它或在其中加入新的功能。


图中的信息显而易见,以nginx服务器作为中转分发请求,以达到负载均衡的目的。

二、环境需求

配置三台tomcat:service-tomcat +3

1.===============安装JDK====================
1.1、查看是否已安装jdk,如果已安装,先卸载再安装新的jdk(过程如下:)
[root@admain1 ~]# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (rhel-2.5.5.4.el6-x86_64 u79-b14)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
[root@admain1 ~]# rpm -qa | grep java
tzdata-java-2015e-1.el6.noarch
java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64
java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
[root@admain1 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64
[root@admain1 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
[root@admain1 ~]# java -version
-bash: /usr/bin/java: 没有那个文件或目录

[root@admain1 ~]# 


1.2、安装jdk
解压jdk到指定目录下:tar -xvf tar包 -C 指定目录
配置全局环境变量:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=/usr/java/jdk1.7.0_79/jre
export PATH=$PATH:/usr/java/jdk1.7.0_79/bin
export CLASSPATH=./:/usr/java/jdk1.7.0_79/lib:/usr/java/jdk1.7.0_79/jre/lib

1.3、文件立即生效:source /etc/profile

2、===============安装Tomcat7===============
2.1、将Tomcat免安装版解压到指定文件夹
2.2、进入Tomcat的bin目录下,启动Tomcat:./startup.sh
2.3、测试,注意关闭防火墙
命令:vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启:service iptables restart

查看端口是否可访问:telnet ip 端口号 (如本机的35465:telnet localhost 35465)

3、============在一个Linux下部署多个Tomcat配置方法============

(1)修改/etc/profile文件,在后面追加如下代码
#第一个Tomcat
CATALINA_BASE=/home/ictuser/apache-tomcat-8.0.24
CATALINA_HOME=/home/ictuser/apache-tomcat-8.0.24
export CATALINA_BASE CATALINA_HOME
#第二个Tomcat
CATALINA_2_BASE=/home/ictuser/tomcat_test/apache-tomcat-9.0.0.M11
CATALINA_2_HOME=/home/ictuser/tomcat_test/apache-tomcat-9.0.0.M11
export CATALINA_2_BASE CATALINA_2_HOME
#第一个Tomcat路径
TOMCAT_HOME=/home/ictuser/apache-tomcat-8.0.24
export TOMCAT_HOME
#第二个Tomcat路径
TOMCAT_2_HOME=/home/ictuser/tomcat_test/apache-tomcat-9.0.0.M11
export TOMCAT_2_HOME

修改以后刷新使修改生效。命令:source /etc/profile

(2). 修改其他tomcat(除了第一个tomcat)根目录bin下的catalina.sh文件
具体操作是切换到tomcat2的bin目录下,vim catalina.sh,找到下面的注释代码
# OS specific support.  $var _must_ be set to either true or false.
并在上述代码下面添加以下代码,目的是为了tomcat2启动的时候能通过该文件的里的$CATALINA_2_BASE 和 $CATALINA_2_HOME找到/etc/profile配置文件里我们前一步配好的具体路径,完成tomcat2的启动过程。

# myself : add
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME

如果有多个tomcat,修改方法是一样的。

(3).修改server.xml文件的端口号

除了第一个tomcat使用的默认配置好的端口号(如果有需要也可以修改),后面添加的tomcat都要通过其根目录下的conf目录下的server.xml文件来修改端口号防止端口冲突

效果如下:




四、安装nginx

1、下载稳定版的nginx到指定文件夹下;

linux命令:

下载:wgethttp://nginx.org/download/nginx-1.14.0.tar.gz

解压:zxvfnginx-1.14.0.tar.gz

 

2、安装准备: nginx依赖于pcre和pcre-devel库,要先安装(若已安装则不需要);

yum install pcre

yum install pcre-devel

yum install -y zlib-devel

 

3、进入解压后的文件夹,安装nginx到指定目录下

cd nginx-1.4.2

./configure --prefix=/usr/local/nginx

make && make install

 

4、启动:

cd /ulsr/local/nginx, 看到如下4个目录

./

 ....conf 配置文件 

 ...html 网页文件

 ...logs 日志文件

 ...sbin 主要二进制程序(命令)

 

[root@localhost nginx]# ./sbin/nginx   ——启动命令

nginx: [emerg] bind() to 0.0.0.0:80 failed(98: Address already in use)

....

nginx: [emerg] bind() to 0.0.0.0:80 failed(98: Address already in use)

nginx: [emerg] still could not bind()

 

报错:不能绑定80端口,80端口已经被占用

(有时是自己装了apache,nginx等,还有更多情况是操作系统自带了apache并作为服务启动)

解决: 把占用80端口的软件或服务关闭即可,也可更换其他端口使用

(关闭对应服务命令:pkill-9 http)

查看nginx是否启动:psaux|grep nginx

修改配置文件后重启:./usr/local/nginx/sbin/nginx-s reload 

5.此时 直接在浏览器地址栏输入:localhost 便能看到 欢迎页面,说明你虚拟主机已经搭建好了 

五、nginx+tomcat负载均衡简单配置:

进入nginx-1.10.1\conf路径,修改配置文件nginx.conf

1、配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢

upstream netitcast.com {
        server 192.168.150.129:8080 weight=1;   #tomcat1分流    weight=1  这是权重分配。
        server 192.168.150.129:8081 weight=2;   #tomcat2分流    weight=2 显然2更大,那么它被分配任务的几率也就更大
        server 192.168.150.129:8082 weight=2;    #tomcat3分流
        server 192.168.150.129:8083 weight=2;    #tomcat4分流
           }
2、 在location\{}中,利用 proxy_pass 配置反向代理地址;此处“http://”不能少,后面的地址要和第一步 upstream 定义的名称保持一致。
location / {            # root   html;            #index  index.html index.htm;            proxy_pass http://netitcast.com;            proxy_redirect default;         } 

具体如下图:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值