码迷,mamicode.com
首页 > 其他好文 > 详细

nginx 负载均衡

时间:2020-08-24 15:12:49      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:display   ast   时间   https   sla   none   segment   ams   并且   

  1. 中文文档:https://www.nginx.cn/doc/
  2. 负载均衡几种策略:https://segmentfault.com/a/1190000014483200       https://www.cnblogs.com/yanggb/p/10895326.html
  3. 采用轮询时,简单测试分析。nginx配置
    技术图片
    upstream test_upstream {
        #ip_hash;
        server 127.0.0.1:8867;
        server 127.0.0.1:8870;
    }
    
    server{
        server_name localhost;
        listen 8869;
    
        location / {
            proxy_pass http://test_upstream;
        }
    
    
    }
    upstream
    技术图片
    server {
            listen        8870;
            server_name  localhost;
            root   "E:\upstream";
            location / {
                index index.php index.html;
    
            }
            location ~ \.php(.*)$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                #fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  PATH_INFO  $fastcgi_path_info;
                fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                include        fastcgi_params;
            }
    }
    
    // 另一个server文件相似,监听不同端口,目录不同,配置不列出来了
    server

    PHP测试代码

    技术图片
    <?php
    $date = date(‘H:i:s‘);
    
    file_put_contents(‘./access.log‘, "$date --- request arrived\n", FILE_APPEND);
    echo ‘upstream directive must be outside server block.‘;
    sleep(5);
    file_put_contents(‘./access.log‘, "response return \n", 8);
    PHP
    技术图片
    <?php
    
    $date = date(‘H:i:s‘);
    file_put_contents(‘./access.log‘, "$date --- request arrived(upstream dir)\n", 8);
    phpinfo();
    
    file_put_contents(‘./access.log‘, "response return(upstream dir)\n", 8);
    View Code

    (1)此策略会根据请求的先后时间顺序分发请求(为了方便区分,一个PHP测试代码里加上了延时5秒,另一个PHP脚本没加延时,并且写入日志文件进行分析判断),在测试中发现:打开一个标签页发起请求(在请求有延时的脚本没有返回结果前,再次刷新就会被轮询到另一个服务端口了,之前的请求就停止了~这个可以根据设置的日志判断出来)我设置的是在请求刚到达的时候写入一次日志,然后延时5秒后再写入一次日志。这样按照上面的操作(有延时那个PHP脚本没有返回结果前刷新页面,记住手速要快~)。当前请求的那个脚本就停止了(看日志会发现只写入一次)。

nginx 负载均衡

标签:display   ast   时间   https   sla   none   segment   ams   并且   

原文地址:https://www.cnblogs.com/bneglect/p/13553204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!