阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7上实现Nginx+Tomcat负载均衡

311次阅读
没有评论

共计 2462 个字符,预计需要花费 7 分钟才能阅读完成。

  • 概述

通常情况下,一个 Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 web 站点架构。

nginx 是一款优秀的 http 服务器软件,它能够支持多达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存,CPU 等系统资源消耗非常低。目前有很多大型网站都应用 nginx 作为后端网站程序的反向代理及负载均衡。

本案例我们将已 nginx 作为负载均衡器,反向代理,tomcat 作为节点服务器。

  • 案例环境
主机 IP 地址
nginx 服务器 192.168.177.132
tomcat 服务器 1 192.168.177.145
tomcat 服务器 2 192.168.177.135

tomcat 服务器

安装 jdk(1.8 版本)
# tar xf apache-tomcat-8.5.23.tar.gz /opt
# tar xf jdk-8u144-linux-x64.tar.gz /opt
// 解压安装包 
# mv apache-tomcat-8.5.23/ /usr/local/tomcat8
# mv jdk1.8.0_144/ /usr/local/Java
// 便于管理 
# vim /etc/profile   // 设置环境变量

export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib

# source /etc/profile
# java -version   // 查看 java 版本信息
   java version "1.8.0_131"
   OpenJDK Runtime Environment (build 1.8.0_131-b12)
   OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

CentOS 7 上实现 Nginx+Tomcat 负载均衡

安装 tomcat
# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
# ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
// 放在 /usr/bin 下便于识别命令 
# tomcatup     // 开启服务
# netstat -anpt | grep 8080   // 查看 tomcat 端口是否开启
# http://192.168.177.145:8080/         // 测试默认测试页是否正常显示(节点)# vim /usr/local/tomcat8/webapps/ROOT/index.jsp // 修改默认网页内容 ( 站点)<h1>this is 145!!!</h1>

CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡
== 注 ==:两台 tomcat 服务器配置完全一样

nginx 服务器

手工编译安装
# tar zxvf nginx-1.12.0.tar.gz -C /opt
# yum install pcre-devel zlib-devel gcc gcc-c++ -y    // 安装环境包
# useradd -M -s /sbin/nologin nginx  // 创建管理 nginx 的用户
# cd /opt/nginx-1.12.0/ 
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \   // 指定运行的用户
    --group=nginx \   // 指定运行的组
    --with-http_stub_status_module   // 启用统计状态
# make && make install
# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    // 让系统识别命令
# nginx -t   // 验证语法 
编写便于 service 管理的脚本
# cd /etc/init.d/
  vim nginx

#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
    $PROG
    ;;
  stop)
    kill -s QUIT $(cat $PIDF)
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  reload)
    kill -s HUP $(cat $PIDF)
    ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0
# chmod +x /etc/init.d/nginx   // 执行权限
# chkconfig --add nginx
# chkconfig --level 35 nginx on
# service nginx stop
# netstat -ntap | grep 80
# service nginx start
# netstat -ntap | grep 80
修改配置文件
# vim /usr/local/nginx/conf/nginx.conf

  #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
     添加:upstream tomcat_server {                             #添加
              server 192.168.177.145:8080 weight=1;   // 权重相同,页面会反复在以下两个页面间来回切换
              server 192.168.177.135:8080 weight=1;    
            }

    server {
        listen       80;
..... 省略
location / {
            # root   html;
            # index  index.html index.htm;
            proxy_pass http://tomcat_server;  // 添加一行,把 nginx 的默认站点通过 proxy_pass 方法代理到设定好的 tomcat_server 负载均衡服务器上   
        }
# service nginx  restart   // 启用 nginx 服务 //

CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡
CentOS 7 上实现 Nginx+Tomcat 负载均衡

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2462字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中