当前设置是使用apache + mod_php进行的。我们可以使用apache_setenv
放入代码中设置的apache访问日志userId和sessionId,然后在访问日志中得到:
"\"%{USER_ID}e\" \"%{SESSION_ID}e\""
这对于我们能够根据访问日志轻松调试信息是必要的。
考虑以下设置:在以nginx作为反向代理的php-fpm上运行的php应用程序。
我想移动到使用php-fpm和nginx的容器化应用程序。问题是我无法使用$_ENV
将动态变量记录到nginx或php-fpm日志中。数据存在于$_SERVER
的转储中,但是从php-fpm
或nginx-acces
日志中都无法访问。
fastcgi_param
,则将关闭。在nginx中将lua与os.getenvvariable一起使用应该可以解决问题吗? %{userId}e
和%{sessionId}e
,尽管它们以var_dump($_SERVER)
存在。如果我从nginx fastcgi_param
传递静态值,则可以在php-fpm中访问此类环境变量。是否有其他选择可以实现此功能,或者nginx中的LUA是唯一的选择。目前,我正在尝试。
答案 0 :(得分:1)
我的解决方案使用自定义的HTTP标头结束了
Header("UserId: 1");
Header("SessionId: session_id");
,然后在nginx访问日志中
log_format main "$upstream_http_userid $upstream_http_sessionid";