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
示例配置
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Perl 多執行緒模組 Parallel::ForkManager執行緒Parallel
- perl 內建變數變數
- perl Statistics::Descriptive Perl 的統計模組
- perl 多執行緒執行緒
- Perl的包和模組
- Nginx和Perl的結合Nginx
- Perl 模組 Hash::Merge
- Perl模組之Tie::File
- perl cpan 模組安裝
- Perl網路程式設計的10個模組程式設計
- perl的包(package)和模組(PM)Package
- Perl5的包和模組
- 比較perl模組的版本(轉)
- Perl指令碼執行方法小結指令碼
- perl中如何執行外部命令
- Nginx提供perl CGI訪問Nginx
- 【ningoo】編寫Perl模組Go
- 使用CPAN安裝Perl模組
- 測試mod_perl模組(轉)
- crontab無法執行perl指令碼 手工卻成功執行指令碼
- 寫的一個perl程式
- perl
- perl呼叫儲存過程儲存過程
- 使用perl通過thrift連線hbase讀取資料
- Perl 6 簡單的並行並行
- perl 程式設計利器程式設計
- perl程式設計技巧程式設計
- Perl的一些重要模組使用介紹
- Cultured Perl: 吸引 C 和 Java 程式設計師目光的 Perl 5.6 (轉)Java程式設計師
- 《Modern Perl》前言--包含了Perl的安裝使用
- perl教程
- 解決perl程式使CPU利用率過高
- perl網路程式設計程式設計
- 14,程式管理(perl筆記)筆記
- perl的安裝
- 【NinGoo】Redhat上安裝Perl DBD::mysql模組GoRedhatMySql
- Perl語言學習(四)Perl控制結構
- perl-Time-HiRes安裝與perl衝突