Laravel Octane 获取不到 客户端ip

1. 运行环境

LNMP

1). 当前使用的 Laravel 版本?

Laravel v9.15.0

2). 当前使用的 php/php-fpm 版本?

PHP 版本:8.1.5

php-fpm 版本:

3). 当前系统

CentOS 7

4). 业务环境

生产环境

5). 相关软件版本

nginx:1.21.4

2. 问题描述?

启用了 Laravel Octane 获取不到 客户端ip、打印$_SERVER 拿不到任何 header信息、
并且还把 env配置文件的数据全部输出了、很奇怪

3. 您期望得到的结果?

想要获取到 客户端真实ip、想能正常获取到header信息、隐藏 env 配置文件信息

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

request()->setTrustedProxies(request()->getClientIps(), RequestAlias::HEADER_X_FORWARDED_FOR);

return request()->ip();

是因为可能客户端使用了代理、这样处理就能拿到 客户端ip了

2年前 评论
讨论数量: 5

用Request对象获取: use Illuminate\Http\Request;

$request->ip(); $request->header();

2年前 评论

request()->ip()

2年前 评论

request()->setTrustedProxies(request()->getClientIps(), RequestAlias::HEADER_X_FORWARDED_FOR);

return request()->ip();

是因为可能客户端使用了代理、这样处理就能拿到 客户端ip了

2年前 评论

你这套思路是FPM下面的,都抛弃FPM使用Swoole HttpServer 自然都不一样了。 除非Octane 兼容给 $_SERVER['REMOTE_ADDR'] = $request->clientIp();

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!