Websocket: Workerman + Nginx反代 下如何获取用户的IP

0

通过 $connection->getRemoteIp() 所获取的 IP 都是 127.0.0.1


trace 了一下代码发现 workerman 貌似最初是由以下方式获取的
$new_socket = @stream_socket_accept($socket, 0, $remote_address);
网上找了下关于 stream_socket_accept 的信息但无果...


以下是 Nginx Conf:


server {
listen 80;
server_name example.com;

location / {
proxy_pass http://(..被误判为站外连结..)127.0.0.1:2346;
proxy_read_timeout 365d;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
已邀请:

walkor

赞同来自:


proxy_set_header X-Real-IP $remote_addr;



你的代理上有这段,那么workerman可以通过读取
$_SERVER来获得客户端ip。

要回复问题请先登录注册