美文网首页php开发技巧
lumn+swoole+负载均衡 获取真实的客户端ip

lumn+swoole+负载均衡 获取真实的客户端ip

作者: 顶尖少爷 | 来源:发表于2019-09-26 18:27 被阅读0次

nginx配置

server {
    listen 80;
    server_name xxxxx.xxx.com
    root /opt/onemena/wwwroot/xxxxx/project.tt.money/public;
    index index.php;

    location = /index.php {
        # Ensure that there is no such file named "not_exists"
        # in your "public" directory.
        try_files /not_exists @swoole;
    }
    # any php files must not be accessed
    #location ~* \.php$ {
    #    return 404;
    #}
    location / {
        try_files $uri $uri/ @swoole;
    }

    location @swoole {
        set $suffix "";

        if ($uri = /index.php) {
            set $suffix ?$query_string;
        }

        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        #proxy_set_header SERVER_PORT $server_port;
        #proxy_set_header REMOTE_ADDR $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;

        # IF https
        # proxy_set_header HTTPS "on";

        proxy_pass http://127.0.0.1:1215$suffix;
    }
}

php代码

protected function getClientIp($request){
        $forwarded = $request->header('X-Forwarded-For');
        $attr = explode(',',$forwarded);
        $ip = $attr[0];
        if(empty($ip)){
            $str = $request->headers;
            $reg = '|X-Forwarded-For:\s+?([^,]+)|';
            if(preg_match($reg, $str,$matches)){
                $ip = $matches[1];
            }
        }
        return  $ip;
    }

相关文章

  • lumn+swoole+负载均衡 获取真实的客户端ip

    nginx配置 php代码

  • Nginx实现负载均衡

    Nginx负载均衡设置 一、负载均衡算法 实现负载均衡可有以下算法: 源地址哈希法:根据获取客户端的IP地址,通过...

  • Java中的代理

    隐藏服务器真实IP:使用反向代理,可以对客户端隐藏服务器的IP地址。 负载均衡:反向代理服务器可以做负载均衡,根据...

  • 反向代理,后端Apache获取真实IP地址

    反向代理,后端Apache获取真实IP地址 在配置负载均衡时,nginx做代理服务器,Apache做web服务,但...

  • Spring Cloud Ribbon源码分析

    客户端负载均衡 学习spring cloud ribbon的时候不得不提到客户端负载均衡。在客户端负载均衡中,所有...

  • spring cloud6负载均衡

    一、负载均衡负载均衡不仅仅是ribbon,还包括zuul1,客户端的负载均衡:ribbon负载均衡作为客户端应用的...

  • 负载均衡

    负载均衡图例负载均衡.png 负载均衡策略 轮询 ip_hash 均衡参数 down 表示当前的服务不参与负载均衡...

  • 负载均衡

    负载均衡可以分为服务端负载均衡和客户端负载均衡,服务端负载均衡完全由服务端负责,客户端不需要做任何事情。客户端负载...

  • Ribbon

    负载均衡的两种方式 服务器端负载均衡 客户端侧负载均衡 实现一个简单的客户端侧负载均衡 使用DiscoveryCl...

  • spring cloud gateway中获取客户端真实请求IP

    客户端请求到服务端时,可能会被 HTTP 代理、负载均衡等转发服务进行处理,再转发,如果要获取最原始的客户端真实I...

网友评论

    本文标题:lumn+swoole+负载均衡 获取真实的客户端ip

    本文链接:https://www.haomeiwen.com/subject/kllhyctx.html