nginx安装配置及负载均衡集群配置(tomcat)

1、nginx安装

  • 下载Nginx的安装包:下载地址为:http://nginx.org/en/download.html
  • 安装openssl、zlib、pcre包,命令:yum -y install openssl openssl-devel zlib zlib-devel pcre pcre-devel
  • 安装c++包,命令:yum install -y gcc gcc-c++
  • 解压nginx包,命令:tar -zxvf nginx-1.10.3.tar.gz
  • cd nginx-1.10.3
  • ./configure
  • make
  • make install
  • 验证是否安装成功:cd /usr/local/nginx/,执行./nginx -t,如下图:

092258_NePC_2910915.png

2、nginx开机自启

  • vi /etc/init.d/nginx  (输入下面的代码)
  • #!/bin/sh 
    # 
    # nginx - this script starts and stops the nginx daemon 
    # 
    # chkconfig: - 85 15 
    # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ 
    #   proxy and IMAP/POP3 proxy server 
    # processname: nginx 
    # config: /etc/nginx/nginx.conf 
    # config: /etc/sysconfig/nginx 
    # pidfile: /var/run/nginx.pid 
    # Source function library. 
    . /etc/rc.d/init.d/functions 
    # Source networking configuration. 
    . /etc/sysconfig/network 
    # Check that networking is up. 
    [ "$NETWORKING" = "no" ] && exit 0 
        nginx="/usr/local/nginx/sbin/nginx" 
        prog=$(basename $nginx) 
        NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 
        lockfile=/var/lock/subsys/nginx 
     
    start() { 
        [ -x $nginx ] || exit 5 
        [ -f $NGINX_CONF_FILE ] || exit 6 
        echo -n $"Starting $prog: " 
        daemon $nginx -c $NGINX_CONF_FILE 
        retval=$? 
        echo 
    [ $retval -eq 0 ] && touch $lockfile 
        return $retval 
    } 
     
    stop() { 
        echo -n $"Stopping $prog: " 
        killproc $prog -QUIT 
        retval=$? 
        echo 
    [ $retval -eq 0 ] && rm -f $lockfile 
        return $retval 
        killall -9 nginx 
    } 
     
    restart() { 
        configtest || return $? 
        stop 
        sleep 1 
        start 
    } 
     
    reload() { 
        configtest || return $? 
        echo -n $"Reloading $prog: " 
        killproc $nginx -HUP 
        RETVAL=$? 
        echo 
    } 
     
    force_reload() { 
        restart 
    } 
     
    configtest() { 
        $nginx -t -c $NGINX_CONF_FILE 
    } 
     
    rh_status() { 
        status $prog 
    } 
     
    rh_status_q() { 
        rh_status >/dev/null 2>&1 
    } 
     
    case "$1" in 
        start) 
            rh_status_q && exit 0 
            $1 
        ;; 
        stop) 
            rh_status_q || exit 0 
            $1 
        ;; 
        restart|configtest) 
            $1 
        ;; 
        reload) 
            rh_status_q || exit 7 
            $1 
        ;; 
        force-reload) 
            force_reload 
        ;; 
        status) 
            rh_status 
        ;; 
        condrestart|try-restart) 
            rh_status_q || exit 0 
        ;; 
        *) 
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
            exit 2 
    esac 
  •  设置文件的访问权限

    chmod a+x /etc/init.d/nginx   (a+x ==> all user can execute  所有用户可执行)

  • vi /etc/rc.local

    加入一行  /etc/init.d/nginx start    保存并退出,下次重启会生效。

3、一台机器多tomcat部署

  • 下载tomcat
  • 修改server.xml配置文件

  第一处:

094952_RXZx_3203872.png

171532_GBJ7_3203872.png

第二处:

095118_fqsy_3203872.png

171618_uTSH_3203872.png

第三处:

095239_9NmQ_3203872.png

171631_jvVs_3203872.png

  • 分别修改bin下的启动文件(startup.sh)

092946_4I2M_2910915.png

3、nginx负载均衡集群配置

  • 修改nginx.conf配置文件

093314_nKXB_2910915.png

  • 配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢
  • 修改nginx监听的端口号80,改为8080
  • 在location\{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致

093506_DyT3_2910915.png

访问url:http://nginxip:8080/nginxdemo

4、补充nginx负载均衡策略

1、轮询(默认)

每个web请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    upstream nginxDemo {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
    }

2、最少链接

web请求会被转发到连接数最少的服务器上。

    upstream nginxDemo {
        least_conn;
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
    }

3、weight 权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,weight默认是1。

    #服务器A和服务器B的访问比例为:2-1;比如有3个请求,前两个会访问A,三个访问B,其它规则和轮询一样。
    upstream nginxDemo {
        server 127.0.0.1:8081 weight=2; #服务器A
        server 127.0.0.1:8082; #服务器B
    }

4、ip_hash

每个请求按访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一服务器进行处理,可以解决session的问题。当后台服务器宕机时,会自动跳转到其它服务器。

    upstream nginxDemo {
        ip_hash;
        server 127.0.0.1:8081 weight=2; #服务器A
        server 127.0.0.1:8082; #服务器B
    }

基于weight的负载均衡和基于ip_hash的负载均衡可以组合在一起使用。

5、url_hash(第三方)

url_hash是nginx的第三方模块,nginx本身不支持,需要打补丁。

nginx按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器、文件服务器、静态服务器时比较有效。缺点是当后端服务器宕机的时候,url_hash不会自动跳转的其他缓存服务器,而是返回给用户一个503错误。

    upstream nginxDemo {
        server 127.0.0.1:8081; #服务器A
        server 127.0.0.1:8082; #服务器B
        hash $request_url;
    }

6、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    upstream nginxDemo {
        server 127.0.0.1:8081; #服务器A
        server 127.0.0.1:8082; #服务器B
        fair;
    }

 

转载于:https://my.oschina.net/jzgycq/blog/877342

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值