Linux搭建nginx实现请求转发

安装tomcat

tomcat的安装就非常容易 官网下载对应的linux版本ftp上传后解压 把web程序war包丢到webapps下面即可切换到bin目录下执行./shutdown.sh 和./startup.sh文件停止启动tomcat    tomcat启动日志目录在logs/catalina.out中 可以在conf/server.xml中配置访问端口等

安装Nginx

effect:

  • 反向代理
  • 负载均衡
  • 实现服务器之间(动静分离)即配置静态资源直接由nginx处理
  • 正向代理

这里采用源码的方式安装nginx。需提前安装相应的依赖库 参考如何搭建nginx需要注意的是zlib依赖官方已下架1.2.8版本,可以使用1.2.11最新。只需按照文章一步一步来即可。nginx常用命令有 1:sbin/nginx -t 检查配置文件nginx.cnf配置文件是否有问题 2.sbin/nginx -s reload 重新启动nginx 3.sbin/nginx -s stop 停止 4.sbin/nginx 启动nginx

配置

安装只是第一步,如果要发挥nginx的最大作用反向代理、均衡负载、静态资源分离则需要修改配置文件conf/vi nginx.cnf    这里有很详细的关于ngixn的介绍

  • 首先是upstream模块  最大作用是实现负载均衡
    实现负载均衡 就要有相应的策略 :
    1:轮询(默认)upstream按照方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。
    upstream xxx {
          server ip1:port1;
          server ip2:port2;
    }
    2:weight(权重) 定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。
    upstream xxx {
          server ip1:port1 weight=5;
          server ip2:port2 weight=10;
    }
    3:ip_hash(访问ip)每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
    upstream xxx {
          ip_hash;
          server ip1:port1;
          server ip2:port2;
    }
    4:fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
    upstream xxx {
          server ip1:port1;
          server ip2:port2;
          fair;
    }
    5:url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。主要注意的是>在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。
    upstream xxx {
          server ip1:port1;
          server ip2:port2;
          hash $request_uri;
          hash_method crc32;
    }
    
    upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:
    1:down 表示单前的server暂时不参与负载.
    2:weight 默认为1.weight越大,负载的权重就越大。
    3:max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.
    4:fail_timeout : max_fails次失败后,暂停的时间。
    5:backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
    例如:
    upstream xxx { #定义负载均衡设备的Ip及设备状态
          ip_hash;
          server ip1:port1 down;
          server ip2:port2 weight=2;
          server ip3:port3;
          server ip4:port4 backup;
    }

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注