登录
    Technology changes quickly but people's minds change slowly.

nginx配置weblogic负载均衡

技术宅 破玉 1306次浏览 0个评论

今天有这么一个需求,需要为之前配置的weblogic集群来配置负载均衡,因为对nginx有所了解,并且nginx在反向代理与负载均衡这方面做得都很好,所以用nginx来为weblogic做负载均衡。

在redhat上部署安装nginx

检查安装环境依赖

# rpm -qa gcc
# rpm -qa zlib
# rpm -qa pcre
# rpm -qa zlib-devel
# rpm -qa pcre-devel

如果没有上述几个环境,则需要安装,

并且zlib版本要与zlib-devel版本对应
pcre版本要与pcre-devel版本对应

安装包可从下面链接获取,下载完上传到服务器,以root用户安装
http://rpmfind.net/

安装nginx

解压nginx压缩包

#tar -zxvf nginx-1.12.0.tar.gz
#cd nginx-1.12.0

开始编译安装
检查安装环境

# ./configure --prefix=/ieswbsvr/bea/nginx/

编译

#make

安装

#make install

安装完成后,修改nginx绑定的端口

#cd /ieswbsvr/bea/nginx/conf
#vi nginx.conf

将端口由80 改为8848

创建nginx启动脚本

vi /etc/init.d/nginx

脚本内容如下:

#! /bin/sh
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/ieswbsvr/bea/nginx/sbin/$NAME
CONFIGFILE=/ieswbsvr/bea/nginx/conf/$NAME.conf
PIDFILE=/ieswbsvr/bea/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

set -e
[ -x "$DAEMON" ] || exit 0

do_start() {
 $DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}

do_stop() {
 kill -INT `cat $PIDFILE` || echo -n "nginx not running"
}

do_reload() {
 kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"
}

case "$1" in
 start)
 echo -n "Starting $DESC: $NAME"
 do_start
 echo "."
 ;;
 stop)
 echo -n "Stopping $DESC: $NAME"
 do_stop
 echo "."
 ;;
 reload|graceful)
 echo -n "Reloading $DESC configuration..."
 do_reload
 echo "."
 ;;
 restart)
 echo -n "Restarting $DESC: $NAME"
 do_stop
 do_start
 echo "."
 ;;
 *)
 echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
 exit 3
 ;;
esac

exit 0

这样,我们就可以使用

service nginx start
service nginx stop
service nginx restart

来控制nginx了。

配置nginx负载均衡weblogic

在weblogic上我们已经配置了相应的集群,这样我们就可以配置负载均衡了。
在nginx的conf文件夹下创建vhsot文件夹,将站点的配置文件统一都放到vhost文件夹下,新建站点配置文件如下:

upstream myproject{
        server 192.168.136.131:8001 weight=3;
        server 192.168.136.131:7006;
        #server 192.168.136.131:8003;
        #server 192.168.136.131:8005;
        #server 192.168.136.131:8007;
        ip_hash;
}
server{
                listen 8849;
                server_name 192.168.136.131;
                access_log logs/e200pro.access.log;
                error_log  logs/e200pro.error.log;
                #root html;
                #index index.html,index.htm,index.jsp;
                add_header backendIP $upstream_addr;
                add_header backendCode $upstream_status;
                location /{
                        proxy_pass http://myproject;
                }
}

将上述配置文件include到nginx.conf的http节点下就可以了,启动nginx就实现了负载均衡。

存在的问题

关于session共享的问题,目前只是采用了nginx的ip_hash算法实现了session共享,但是ip_hash有局限性,以后还有改进配置
参考文章
nginx 负载均衡session复制解决方案


华裳绕指柔, 版权所有丨如未注明 , 均为原创|转载请注明nginx配置weblogic负载均衡
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址