nginx简单的负载均衡配置

今天做了一个nginx简单的负载均衡测试,在这里跟大家分享一下。如下是我的示意图:

24160057_zMM8.jpg

安装nginx的步骤在我的上几篇文章里面都有,在这里介绍了。

一、下面我们看nginx的配置文件"nginx.conf”

user  www www;
worker_processes 4;
error_log  /data1/logs/nginx_error.log  crit;
pid        /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include       mime.types;
  default_type  application/octet-stream;
  #charset  gb2312;

  #设定负载均衡的服务器列表 

  #weigth参数表示权值,权值越高被分配到的几率越大 
  upstream Myserver {
  server 192.168.100.100:80 weight=5 max_fails=2 fail_timeout=20s;
  server 192.168.100.200:80 weight=4 max_fails=2 fail_timeout=20s;
  }
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
  sendfile on;
  tcp_nopush     on;

  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
  #limit_zone  crawler  $binary_remote_addr  10m;
  server
  {
    listen       80;
    server_name  192.168.100.50;
    index index.html index.htm index.php;
    root  /home/www/;
    #limit_conn   crawler  20;

    # 对 ".php"的文件启用负载均衡

    location ~* .*.php$ {
    proxy_pass         http://Myserver;
    }
    log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
    access_log  /data1/logs/access.log  access; 
  }
}
2、后端的apache服务器基本不用配置,搭建好lamp的环境后,在apache的访问目录下新建一个"test.php"的php测试页。

#touch  test.php

#vi   test.php        //输入以下内容

<?

print   "192.168.100.100";

?>

保存退出。

(后端的两个apache服务器做相同的配置就ok!)

三、测试

在你的浏览器地址栏里面输入:http://192.168.100.50/test.php,会出现如下画面。

24160057_0aMw.jpg
刷新一下浏览器会出现如下画面:

24160057_ADrO.jpg

 ok!测试成功。

upstream有以下四种配置方式。我采用的是第一种。
1、 weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream Myserver {
server 192.168.100.100:80 weight=5 max_fails=2 fail_timeout=20s;
server 192.168.100.200:80 weight=4 max_fails=2 fail_timeout=20s;
}
2、ip_hash。当对后台动态应用服务器做负载均衡时,ip_hash指令能够将某个客户端ip的请求通过哈希算法定位到同一台后端服务器上,能够实现session共享,但是不能保证后台服务器的负载均衡。
upstream Myserver {
ip_hash
server 192.168.100.100:80 ;
server 192.168.100.200:80 ;
}
3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream resinserver{
server server1;
server server2;
fair;
}
4、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream resinserver{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
tips:
upstream resinserver{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:8000 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6801;
server 127.0.0.1:6802 backup;
}
在需要使用负载均衡的server中增加
proxy_passhttp://resinserver/;
每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

转载于:https://my.oschina.net/liting/blog/405970

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值