将自定义环境变量设置为 psgi 哈希plack



当我向转储器发出请求时$env我得到了环境哈希 psgi 的所有数据,在这个例子中

sub { 
my $env = shift;  
return [ 200, [], [ $env->{REMOTE_ADDR} ] ];  
}

或更直接

sub { 
return [ 200, [], [ shift->{REMOTE_ADDR} ] ];   
}

输出:

返回客户端的 IP 地址

如何将我自己的自定义环境变量设置为 psgi 哈希 plack

为什么我想这样做,我的情况与: Nginx变量类似于Apache中的SetEnv?

如果无法做到这一点,我可以创建子类并将该功能添加到 psgi Web 服务器吗?

感谢您抽出宝贵时间

假设你想在应用程序服务器中设置变量,这看起来像是一些底层中间件的完美案例。对于这种情况,我找到了 Plack::Middleware::ReviseEnv,它可以在您的 app.psgi 中使用:

# app.psgi
use Plack::Builder;
my $app = sub {
return [ 200, [], [ shift->{var} ] ];
};
builder {
enable "ReviseEnv", revisors => { 'var'  => 'custom',
'var2' => 'other' };
$app;
};

该文档还列出了用于设置简单文本以外的值的其他选项,例如包括其他$env数据或%ENV环境变量。

相关内容

  • 没有找到相关文章

最新更新