Nginx通过内置的Perl模块执行Perl程序

 

 

    通过使用该模块Nginx服务器可以直接在Nginx内部执行Perl,或者是通过SSI来调用Perl

 

    该模块在默认安装是没有别安装,因此要想安装该模块就需要在编译是指定--with-http_perl_module选项,同时需要Nginx服务器所在的系统装有Perl 5.6.1及以上的版本。

 

    然而,需要注意的是,该模块是一个实验性模块,因此可能会存在一些bug,同时在使用给该模块上要注意以下两点:

 

n         如果Perl模块执行了延时的操作,例如,DNS查询,数据库查询,等等,那么运行该Perl脚本的worker进程将会一直等待该进程的完成。因此,在使用嵌入式的Perl脚本时,应该尽可能的简短,而且要尽快的执行操作。

 

n         如果使用'kill -HUP '方式重新载入Nginx的配置文件,那么可能会导致Nginx发生内存溢出。

 

示例配置

 

http {

  perl_modules  perl/lib;

  perl_require  hello.pm;

 

  perl_set  $msie6  '

  sub {

    my $r = shift;

    my $ua = $r->header_in("User-Agent");

    return "" if $ua =~ /Opera/;

    return "1" if $ua =~ / MSIE [6-9] \.\d+/;

    return "";

  }

 ';

 

  server {

    location / {

      perl  hello::handler;

    }

  }

}

   

    perl/lib/hello.pm:

 

package hello;

use nginx;

 

sub handler {

  my $r = shift;

  $r->send_http_header("text/html");

  return OK if $r->header_only;

 

  $r->print("hello!\n
");

  $r->rflush;

 

  if (-f $r->filename or -d _) {

    $r->print($r->uri, " exists!\n");

  }

 

  return OK;

}

 

1;

__END__

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27043155/viewspace-732402/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27043155/viewspace-732402/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值