首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将自定义环境变量设置为psgi散列

将自定义环境变量设置为psgi散列
EN

Stack Overflow用户
提问于 2018-04-20 12:39:37
回答 1查看 417关注 0票数 4

在本例中,当我请求dumper $env时,我得到了所有环境哈希psgi的数据。

代码语言:javascript
复制
sub { 
  my $env = shift;  
  return [ 200, [], [ $env->{REMOTE_ADDR} ] ];  
}

或者更直接

代码语言:javascript
复制
sub { 
  return [ 200, [], [ shift->{REMOTE_ADDR} ] ];   
}

输出:

返回客户端的IP地址。

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

为什么我要这么做,我的案例与:Nginx变量类似于Apache中的SetEnv?有关

如果不可能这样做,可以创建子类并将该功能添加到psgi服务器?

耽误您时间,实在对不起

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-27 16:44:39

假设您想在应用程序服务器中设置变量,这看起来是某些plack中间件的完美案例。对于本例,我找到了Plack::中间件::ReviseEnv,它在您的app.psgi中是可用的:

代码语言:javascript
复制
# app.psgi
use Plack::Builder;

my $app = sub {
    return [ 200, [], [ shift->{var} ] ];
};

builder {
    enable "ReviseEnv", revisors => { 'var'  => 'custom',
                                      'var2' => 'other' };
    $app;
};

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49941866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档