加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 将自定义环境变量设置为psgi hash plack

发布时间:2020-12-16 06:14:13 所属栏目:大数据 来源:网络整理
导读:当我向dumper $env请求时,我得到了enviromment hash psgi的所有数据,在这个例子中 sub { my $env = shift; return [ 200,[],[ $env-{REMOTE_ADDR} ] ]; } 或更直接 sub { return [ 200,[ shift-{REMOTE_ADDR} ] ]; } 输出: 返回客户端的IP地址 如何将自己的
当我向dumper $env请求时,我得到了enviromment hash psgi的所有数据,在这个例子中

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

或更直接

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

输出:

返回客户端的IP地址

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

为什么我想这样做,我的情况与:
Nginx variables similar to SetEnv in Apache?

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

谢谢你的时间

解决方法

假设您想在应用程序服务器中设置变量,这看起来像是一些plack中间件的完美案例.对于这种情况,我找到了 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环境变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读