这里演示一个端口 1001, 其他两个自行创建
- <?PHP
- $http = new swoole_http_server("0.0.0.0", 1001);
- $http->on("start", function ($server) {
- echo "Swoole http server is started at http://127.0.0.1:1001\n";
- });
- $http->on("request", function ($request, $response) {
- $response->header("Content-Type", "text/plain");
- $response->end("Hello World 1003 \n");
- });
- $http->start();
nginx 配置
- upstream nginx {
- server 127.0.0.1:1001;
- server 127.0.0.1:1002;
- server 127.0.0.1:1003;
- }
- server
- {
- listen 80;
- server_name nginx.liaosp.top;
- index index.html index.htm index.PHP;
- #error_page 404 /404.HTML;
- location / {
- proxy_pass http://nginx;
- }
- }
- weight(权重)
指定轮询几率, weight 和訪问比率成正比, 用于后端服务器性能不均的情况. 例如以下所看到的. 10.0.0.88 的訪问比率要比 10.0.0.77 的訪问比率高一倍.
- upstream linuxidc{
- server 10.0.0.77 weight=5;
- server 10.0.0.88 weight=10;
- }
- ip_hash(訪问 ip)
每一个请求按訪问 ip 的 hash 结果分配. 这样每一个訪客固定訪问一个后端服务器, 能够解决 session 的问题.
- upstream favresin{
- ip_hash;
- server 10.0.0.10:8080;
- server 10.0.0.11:8080;
- }
- fair(第三方)
按后端服务器的响应时间来分配请求. 响应时间短的优先分配.
与 weight 分配策略相似.
- upstream favresin{
- server 10.0.0.10:8080;
- server 10.0.0.11:8080;
- fair;
- }
- url_hash(第三方)
按訪问 url 的 hash 结果来分配请求, 使每一个 url 定向到同一个后端服务器. 后端服务器为缓存时比較有效.
注意: 在 upstream 中加入 hash 语句. server 语句中不能写入 weight 等其他的參数, hash_method 是使用的 hash 算法.
- upstream resinserver{
- server 10.0.0.10:7777;
- server 10.0.0.11:8888;
- hash $request_uri;
- hash_method crc32;
- }
upstream 还能够为每一个设备设置状态值, 这些状态值的含义分别例如以下:
down 表示单前的 server 临时不參与负载.
weight 默觉得 1.weight 越大, 负载的权重就越大.
max_fails : 同意请求失败的次数默觉得 1. 当超过最大次数时, 返回 proxy_next_upstream 模块定义的错误.
fail_timeout : max_fails 次失败后. 暂停的时间.
backup: 其他全部的非 backup 机器 down 或者忙的时候, 请求 backup 机器. 所以这台机器压力会最轻.
- upstream bakend{ #定义负载均衡设备的 Ip 及设备状态
- ip_hash;
- server 10.0.0.11:9090 down;
- server 10.0.0.11:8080 weight=2;
- server 10.0.0.11:6060;
- server 10.0.0.11:7070 backup;
- }
来源: http://www.bubuko.com/infodetail-3120546.html