使用nginx搭建tomcat集群

nginx搭建集群的原理

nginx能够搭建tomcat集群是因为nginx能够反向代理以及负载均衡。

反向代理:

项目实施

安装jdk

在安装tomca之前需要先安装tomcat所需要的java环境。

--解压并且重命名
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
mv jdk1.8.0_321 jdk
-- 配置环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin

保存成功后,刷新环境变量
source /etc/profile

[root@bigdata ~]# java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
--出现上面信息就代表jdk安装配置成功了

安装多个tomcat

解压:
tar -zxvf apache-tomcat-8.5.87.tar.gz -C /usr/local
重命名和复制:
[root@bigdata software]# cd /usr/local/
[root@bigdata local]# mv apache-tomcat-8.5.87 tomcat1
[root@bigdata local]# ls
bin  etc  games  include  jdk  lib  lib64  libexec  nginx  sbin  share  src  tomcat1
[root@bigdata local]# cp -r tomcat1 tomcat2
[root@bigdata local]# ls
bin  games    jdk  lib64    nginx  share  tomcat1
etc  include  lib  libexec  sbin   src    tomcat2

这时如果启动tomcat1之后,tomcat2会启动不了,因为tomcat1以经将默认的端口占用了

所以需要去配置文件中更改端口。

开始启动:

启动第一台tomcat 
进入到bin目录下   cd /usr/local/tomcat1/bin
./startup.sh
启动第二台tomcat  /usr/local/tomcat2/bin
进入到bin目录下  ./startup.sh

安装nginx

  1. 要求的安装环境

yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
  1. 安装

--解压
tar -zxvf nginx-1.8.0.tar.gz
--使用configure命令创建-makeFile文件
先创建出需要的文件夹
mkdir -p /var/temp/nginx/client
进入的nginx目录:
cd nginx-1.8.0
执行下面的命令(下面的为一条命令)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module

然后在输入:make
再输入 make install

验证是否安装成功
[root@bigdata nginx]# cd /usr/local/nginx
[root@bigdata nginx]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 3月  21 13:08 conf
drwxr-xr-x. 2 root root   40 3月  21 13:08 html
drwxr-xr-x. 2 root root   19 3月  21 13:08 sbin

3,启动nginx

cd sbin
./nginx
启动后查看进程中是否有nginx

[root@bigdata sbin]# ps -aux |grep nginx
root      52684  0.0  0.0  24896   768 ?        Ss   13:12   0:00 nginx: master process ./nginx
nobody    52685  0.0  0.0  25324  1456 ?        S    13:12   0:00 nginx: worker process
root      53227  0.0  0.0 112824   984 pts/0    R+   13:13   0:00 grep --color=auto nginx

查看到有两个进程:master  worker

访问nginx的web页面:

nginx的其他操作:

关闭nginx:
 [root@localhost sbin]# ./nginx -s stop
 推荐使⽤:
 [root@localhost sbin]# ./nginx -s quit

 重启nginx:
 先关闭后启动。
 刷新配置⽂件:
 [root@localhost sbin]# ./nginx -s reload

补充:nginx报错:nginx: [emerg] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)

使用nginx提供的默认的pid

进入nginx.cnof 配置文件:

cd /usr/local/nginx/conf/
vi nginx.conf

将#号删掉

同时在nginx目录下创建logs文件夹

修改nginx的配置文件(实现反向代理的效果):

cd /usr/local/nginx/conf
vi nginx.conf
修改一下内容
第一台的关键配置
upstream tomcat1 {
       server 192.168.32.128:8080;
 }
    
    server {
        listen       80;
        server_name  www.zpzp.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://tomcat1;
            index  index.html index.htm;
        }
}
第二台的关键配置
upstream tomcat2 {
       server 192.168.32.128:8081;
 }
    
    server {
        listen       80;
        server_name  www.oaoa.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://tomcat2;
            index  index.html index.htm;
        }
}

重新加载配置文件

nginx -s reload

因为是在本地模拟运行。,所以要修改本机的hosts来创建ip和对应域名的映射,来达到想要的的效果。

负载均衡

客户的请求发送到服务端以后,如何让集群中所有的服务器都能够达到性能的最佳状态。

例:100请求 ---> Nginx --> 根据之前约定的规则 将请求分发给不同的Tomcat服务器

集群:比如Tomcat集群,多个Tomcat提供了相同的服务,就叫做Tomcat集群。
以上这个图:使用Nginx搭建tomcat集群。

我们要达到访问同一域名根据配置tomcat的不同显示不同的效果。

开始配置:

upstream tomcat1 {
       server 192.168.32.128:8080;
         server 192.168.32.128:8082;    --这个是新追加的tomcat的ip端口信息
    }

保存后重新加载配置文件

nginx -s reload

还有一种情况:在真实的公司里面公司的服务器是有优劣的。轮询不一定是适合的,配置高的服务器要多干活才可以。使用权重

权重越⾼分配的请求越多,权重越低,请求越少。默认是都是1

upstream tomcat1 {
       server 192.168.32.128:8080;
       server 192.168.32.128:8082 weight=2; //weight越大权重越高
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值