nginx apache负载均衡测试

apache配置

(监听内网ip和端口)

Listen 10.163.170.8:8001
Listen 10.163.170.8:8002
Listen 10.163.170.8:8003

<VirtualHost *:8001>
    DocumentRoot /website/111.com
    ServerName localhost:8001
    DirectoryIndex index.html index.php
    ErrorLog logs/111.com-error_log
    CustomLog logs/111.com-access_log common
</VirtualHost>

<VirtualHost *:8002>
    DocumentRoot /website/222.com
    ServerName localhost:8002
    DirectoryIndex index.html index.php
    ErrorLog logs/222.com-error_log
    CustomLog logs/222.com-access_log common
</VirtualHost>

<VirtualHost *:8003>
    DocumentRoot /website/333.com
    ServerName localhost:8003
    DirectoryIndex index.html index.php
    ErrorLog logs/333.com-error_log
    CustomLog logs/333.com-access_log common
</VirtualHost>

nginx配置

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf
    # include /etc/nginx/conf.d/*.conf;

    upstream webservers {
        server 10.163.170.8:8001 weight=1;
        server 10.163.170.8:8002 weight=2;
        server 10.163.170.8:8003 weight=3;
    }

    server {
        listen    80;
        server_name  localhost;
        location / {
            proxy_pass      http://webservers;
            proxy_set_header  X-Real-IP  $remote_addr;
        }
    }

}

php测试

(nginx_upstream_test.php)

<?php
$url = ‘http://114.215.107.17/‘;
$count = 100;

$webservers = array();
for($i=1; $i<=$count; $i++){
    echo($i."\n");
    $data = test($url);
    $webservers[$data]++;
}
var_dump($webservers);

function test($url){
    $data = file_get_contents($url);
    return trim($data);
}
?>

测试结果1

array(3) {
  [222]=>
  int(34)
  [333]=>
  int(49)
  [111]=>
  int(17)
}

测试结果2

array(3) {
  [333]=>
  int(51)
  [222]=>
  int(33)
  [111]=>
  int(16)
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。