怎樣通過(guò)nginx代理獲取用戶真實(shí)IP?
獲取的最新版本的workerman,創(chuàng)建的websocket協(xié)議,根據(jù)文檔:
http://m.wtbis.cn/doc/workerman/faq/get-real-ip-from-proxy.html
nginx配置如下:
代碼如下:
訪問(wèn)后報(bào)錯(cuò)如下:
折騰了一個(gè)多小時(shí)都取不到ip,請(qǐng)問(wèn)大家我是哪個(gè)環(huán)節(jié)出錯(cuò)了呢?
<?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)
{
// 當(dāng)使用客戶端真實(shí)ip時(shí),直接使用$connection->realIP即可
$connection->send($connection->realIP);
};
Worker::runAll();
workerman v5這樣用