来源

求个简单的php代码:https://www.hostloc.com/thread-781910-1-1.html

目标

自建了2个网站  a.x.com/1.zip   ,b.x.com/1.zip  。内容都是一样的,现在想通过访问x.com/1.zip  随机重定向到上面的2台服务器 以达到分流负载的目的。

PHP解决方案一

<?php
$url = mt_rand(0, 1) === 0 ? 'http://a.x.com/1.zip' : 'http://b.x.com/1.zip';
header('Location: ' . $url, true, 303);

PHP解决方案二

$url = mt_rand(0, 1) === 0 ? 'http://a.x.com'.$_SERVER【'REQUEST_URI'】 : 'http://b.x.com'.$_SERVER【'REQUEST_URI'】;
header('Location: ' . $url, true, 303);

NGINX解决方案

   upstream x_zip{
        server a.x.com/1.zip weight=1; #weight是权重的意思,权重越大分配概率越大。
        server b.x.com/1.zip weight=1;
    }
    server {
        listen       80;
        server_name  x.com;

        location /1.zip {
                proxy_set_header         Host $host;
                proxy_set_header         REMOTE-HOST $remote_addr;
                proxy_set_header         X-Real-IP $remote_addr;
                proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass               http://x_zip;
        }
    }