简介
我的FastCGI服务器是用C语言编写的。我希望FCGI
auth服务器将一些自定义参数(例如Radius服务器返回的一些参数)传递给FCGI "back-end"
服务器。
我的问题
NGINX是否支持在C中的两个FCGI服务器之间传递自定义参数?如果是的话,我将非常感谢以下方面的帮助:
辛苦工作
这就是我所拥有的。 FCGI / auth服务器将设置custom_param variable
,我希望NGINX将此变量转发到FCGI后端服务器。
location / {
auth_request /auth;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
location = /auth {
include fastcgi_params;
fastcgi_param CUSTOM_PARAM custom_param;
fastcgi_pass 127.0.0.1:9010;
}
感谢您的帮助!
答案 0 :(得分:2)
身份验证处理程序通过http标头将信息传递回服务器。使用nginx,您将使用auth_request_set
将这些值分配给变量:
location / {
auth_request /auth;
auth_request_set $receive_from_auth $upstream_http_x_custom_param;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
从nginx向FCGI发送参数的方式与您指示的方式相同:
location = /auth {
include fastcgi_params;
set $send_to_auth yourvalue;
fastcgi_param CUSTOM_PARAM $send_to_auth;
fastcgi_pass 127.0.0.1:9010;
}
这些参数是从环境中读取的:
char *custom_param;
custom_param = getenv("CUSTOM_PARAM");