nginx+tomcat实现负载均衡

一.nginx简单介绍

Nginx是一款轻量级兼备高性能的Http和反向代理服务器。所谓反向代理就是指在用户发起访问请求,由代理服务器接收,然后将请求转发给正式服务器,并且将正式服务器处理完的数据返回给客户端,此时代理服务器就表现为一个服务器。这么做看起来多经过了一步,稍显麻烦,但实则是好处多多.

  1. 热部署
    我个人觉得这个很不错。在master管理进程与worker工作进程的分离设计,使的Nginx具有热部署的功能,那么在7×24小时不间断服务的前提下,升级Nginx的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。
  2. 可以高并发连接
    这是一个很重要的一个特性!在这一个 互联网 快速发展, 互联网 用户数量不断增加,一些大公司、网站都需要面对高并发请求,如果有一个能够在峰值顶住10万以上并发请求的Server,肯定会得到大家的青睐。理论上,Nginx支持的并发连接上限取决于你的内存,10万远未封顶。
  3. 低的内存消耗
    在一般的情况下,10000个非活跃的HTTP Keep-Alive 连接在Nginx中仅消耗2.5M的内存,这也是Nginx支持高并发连接的基础。
  4. 处理响应请求很快
    在正常的情况下,单次请求会得到更快的响应。在高峰期,Nginx可以比其他的Web服务器更快的响应请求。
  5. 具有很高的可靠性
    Nginx是一个高可靠性的Web服务器,这也是我们为什么选择Nginx的基本条件,现在很多的网站都在使用Nginx,足以说明Nginx的可靠性。高可靠性来自其核心框架代码的优秀设计、模块设计的简单性;并且这些模块都非常的稳定。

二.安装nginx和tomcat

nginx的安装教程参见<使用fastDFS从头搭建文件服务器>;
tomcat的安装教程参见CentOS中的<阿里云centOS手工部署Java Web项目>.

三.nginx配置

常用命令:
#打开配置文件
# vi /usr/local/nginx/conf/nginx.conf
#查看nginx进程
#ps aux |grep nginx

# cd /usr/local/nginx/sbin/
# ./nginx 
或者直接:
启动
# /usr/local/nginx/sbin/nginx
停止
# /usr/local/nginx/sbin/nginx -s stop
重启
# /usr/local/nginx/sbin/nginx -s reload

其它命令
# ./nginx -s stop
# ./nginx -s quit
# ./nginx -s reload
#使用用户与安装用户保持一致,不然可能会报403 Forbidden,window下不指定  
user  root;
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

#工作模式及连接数上限
events {
    use   epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能;使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
    worker_connections  1024; #51200=1024*50,单个后台worker process进程的最大并发链接数
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
     #设定mime类型,类型由mime.type文件定义
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    #access_log    /var/log/nginx/access.log;

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.其主要作用是加快对静态文件的处理。默认情况下是开启(on)状态。
    sendfile        on;
    tcp_nopush     on;#属于nginx静态资源配置模块,把多个包一次性整合之后再发送给客户端,而不是一次次发,在sendfile开启的情况下,提高网络包的传输效率,可在http、server和location中配置,默认是关闭(off)状态。
    tcp_nodelay     on;#属于nginx静态配置模块,尽量的把包发送出去,不要等待,用在实时性有要求的场景。一般在keepalive连接下,提高网络                                包的传输实时性,可在http、server和location中配置,默认是开启(on)状态。看上去是和tcp_nopush相反的功能,但是两边都为on时nginx也可以平衡这两个功能的使用。

    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #设定负载均衡的服务器列表,这里的域名要和下面proxy_pass的一样
    upstream test {
        #weigth参数表示权值,权值越高被分配到的几率越大
        #本机上的Squid开启3128端口
        server 192.168.8.1:3128 weight=5;
        server 192.168.8.2:80  weight=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值