怎样通过nginx代理获取用户真实IP?

lf迷途

怎样通过nginx代理获取用户真实IP?

获取的最新版本的workerman,创建的websocket协议,根据文档:
https://www.workerman.net/doc/workerman/faq/get-real-ip-from-proxy.html

nginx配置如下:
截图

代码如下:
截图

访问后报错如下:
截图

折腾了一个多小时都取不到ip,请问大家我是哪个环节出错了呢?

141 1 0
1个回答

<?php

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('websocket://0.0.0.0:7272');

$worker->onWebSocketConnect = function(TcpConnection $connection, $request){
    $connection->realIP = $request->header('x-real-ip'); // workerman v5 用法
};
$worker->onMessage = function(TcpConnection $connection, $data)
{
    // 当使用客户端真实ip时,直接使用$connection->realIP即可
    $connection->send($connection->realIP);
};
Worker::runAll();

workerman v5这样用

  • lf迷途 6天前

    老大,你终于回我了,搞了我一下午,不知所云,好难受!那文档后面会有相应的更新吗?

  • walkor 6天前

    更新了

×
🔝