中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

perl使用nginx fastcgi環境做web開發實例
來源:易賢網 閱讀:1218 次 日期:2016-06-14 10:43:50
溫馨提示:易賢網小編為您整理了“perl使用nginx fastcgi環境做web開發實例”,方便廣大網友查閱!

hello world

一個簡單的hello world例子:

代碼如下:

#!/usr/bin/env perl

use strict;

use warnings;

use cgi::fast;

while(my $q = new cgi::fast)

{

print $q->header(text/plain);

print hello world;

}

和cgi的區別僅在于多了一個循環來接受請求,cgi::fast對象和cgi接口是一樣的,而且該腳本也可以當做cgi腳本使用。

搭建nginx + fastcgi 環境

perl使用cgi::fast包來提供fastcgi服務,該包提供兩種方式來啟動fastcgi進程,一個是直接使用該包提供的服務將當前進程變為fastcgi進程,另外一個是使用第三方工具spawn-fcgi來啟動。

nginx配置方式例子:

代碼如下:

location / {

fastcgi_pass 127.0.0.1:8184;

fastcgi_param script_filename /scripts$fastcgi_script_name;

include fastcgi_params;

}

配置好nginx后,使用spawn-fcgi來啟動前面的hello world:

代碼如下:

$ spawn-fcgi -n -a 127.0.0.1 -p 8184 -f ./main.pl

調試支持

在前面的命令行里使用了參數-n,讓spawn-fcgi不要fork出多個進程,并阻塞,允許用戶ctrl+c來關閉,產品服務器可以去掉這個參數來充分利用服務器的多核來提供更高的并發數。我之前寫了一個bash腳本,允許在文件改動的情況下重啟服務,方便調試perl程序,代碼如下:

代碼如下:

#!/bin/bash

#pid文件和需要啟動的腳本

pid_file=service.pid

main=main.pl

#關閉之前啟動的進程

term() {

test -e $pid_file || return

pid=`cat $pid_file`

kill -s -0 $pid || return

echo terminating $main $pid

rm -f $pid_file

kill $pid

wait $pid

}

#當前腳本退出的時候也關閉啟動了的fastcgi進程

trap term;exit sigint sigterm

while true

do

#首次啟動或者文件改動后都需要關閉之前的進程

term

#以no fork方式啟動腳本來調試,并將pid寫入到文件

spawn-fcgi -n -a 127.0.0.1 -p 8184 -f ./$main &

pid=$!

echo $pid > $pid_file

echo my perl service started, pid = $pid

#監控文件變化

files=`find . -name '*.pl' -o -name '*.pm' -o -name '*.html'`

md5=`md5sum $files|md5sum`

#wait for file change

while [[ `md5sum $files|md5sum` = $md5 ]]

do

sleep 1

done

echo file changes detected, restarting service

done

該腳本已在mac osx和linux下測試通過

路由系統

做web開發離不開路由實現,來對不同請求來做出特定的響應。

路由請求依賴http method和uri兩部分,因此主要就是需要這兩者來做分派。

在cgi中可以通過環境變量request_method和request_uri來獲取請求方法和uri。

因此一個簡單的路由系統實際上可以分解為一個二級的map,注冊路由實際上就是往這個map里放入規則對應的處理函數,而分派請求則是從這個map里根據規則獲取對應的處理函數,一個簡單的例子:

代碼如下:

my %routers = ();

sub not_found

{

print status: 404\n;

print content-type: text/html\n\n;

print<<eof

<html>

<body>

<h1>404 not found</h1>

cannot find $env{request_path}.

</body>

</html>

eof

}

sub add_rule

{

my ($method, $path, $callback) = @_;

my $handlers = $routers{$method};

$handlers = $routers{$method} = {} if not $handlers;

$handlers->{$path} = $callback;

}

sub dispatch

{

my $q = shift;

my $method = $env{request_method};

my $uri = $env{request_uri};

$uri =~ s/\?.*$//;

my $handler = ($routers{$method} || {})->{$uri} || not_found;

eval

{

&$handler($q);

};

print stderr failed to handle $method $uri: if $@;

}

使用這個路由系統的例子:

代碼如下:

sub index

{

my ($q) = @_;

print $q->header('text/plain');

print hello world!;

}

router::add_rule('get', '/', \&index);

模板系統

perl提供了大量的模板系統的實現,我個人最喜歡的是template toolkit,文檔也非常豐富,網站是 。

將前面的index修改為使用模板的例子:

代碼如下:

use template;

my $tt = new template({include_path => 'templates', interpolate => 1});

sub index

{

my ($q) = @_;

my $output = '';

print $q->header('text/html');

$tt->process('index.html', {world => 'world'}, $output) || die $tt->error();

print $output;

}

其中templates/index.html文件內容如下:

代碼如下:

<html>

<head><title>demo</title></head>

<body>

hello ${world}

</body>

</html>

完!

更多信息請查看腳本欄目
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美亚洲综合在线| 在线一区二区三区做爰视频网站| 尤物yw午夜国产精品视频明星| 国产精品福利网站| 欧美精品在线观看91| 欧美三区在线| 国产精品白丝jk黑袜喷水| 欧美午夜片在线观看| 国产精品一区二区欧美| 国产日韩精品一区二区三区在线| 一区二区三区亚洲| 亚洲国产高潮在线观看| 亚洲一区二区三区激情| 久久精品女人| 国产精品hd| 精品不卡视频| 亚洲一二三区精品| 免费国产自线拍一欧美视频| 欧美精品一区二区三区很污很色的| 国产欧美日韩亚洲精品| 亚洲靠逼com| 久久一区国产| 国产精品日韩在线一区| 亚洲国产精品久久久久婷婷老年| 在线高清一区| 亚洲午夜在线视频| 久久精品首页| 欧美福利电影网| 国产一区二区在线观看免费| 亚洲人成欧美中文字幕| 久久精品国产免费观看| 欧美日韩国产成人在线91| 伊人狠狠色丁香综合尤物| 亚洲国产小视频在线观看| 欧美一级成年大片在线观看| 欧美xxx在线观看| 国产午夜精品视频| 亚洲午夜极品| 欧美精品成人91久久久久久久| 国产亚洲一本大道中文在线| 亚洲无线视频| 国产精品亚洲аv天堂网| 99精品久久久| 久久精品五月| 国产午夜精品久久久久久免费视| 亚洲激情一区| 欧美电影专区| 国产私拍一区| 亚洲尤物影院| 最近看过的日韩成人| 久久精品视频在线播放| 欧美日韩情趣电影| 一区二区三区毛片| 久久伊人亚洲| 亚洲国产成人在线| 欧美日韩激情网| 国内精品免费在线观看| 一区二区三区欧美在线| 欧美国产成人在线| 在线免费精品视频| 欧美一级二级三级蜜桃| 国产精品一页| 校园春色综合网| 国产在线日韩| 久久久久久亚洲精品杨幂换脸 | 激情久久五月天| 亚洲欧美日韩一区| 欧美深夜影院| 亚洲午夜极品| 欧美精品色一区二区三区| 亚洲日本久久| 欧美片网站免费| 亚洲视频999| 国产精品久久久久9999高清| 欧美午夜理伦三级在线观看| 亚洲国产精品一区二区第一页 | 久久亚洲国产成人| 国产精品久久久久999| 亚洲精品一区二区三区婷婷月 | 国产亚洲a∨片在线观看| 亚洲欧美在线高清| 国产在线观看一区| 久久精品道一区二区三区| 国产精品超碰97尤物18| 亚洲视频在线免费观看| 欧美一区二区免费| 国产精品一区二区在线| 午夜精品免费在线| 国产亚洲激情| 亚洲精美视频| 久久综合精品国产一区二区三区| 在线精品亚洲| 欧美成人精品一区二区| 亚洲综合电影| 亚洲电影av在线| 国产农村妇女毛片精品久久麻豆 | 国产欧美日韩高清| 欧美大片专区| 一本色道久久| 国产性色一区二区| 男女av一区三区二区色多| 亚洲国产高清一区| 国产精品毛片一区二区三区 | 在线免费观看欧美| 欧美色图麻豆| 久久综合99re88久久爱| 亚洲女同同性videoxma| 亚洲高清视频的网址| 欧美性猛交xxxx免费看久久久 | 国产精品萝li| 美日韩丰满少妇在线观看| 亚洲欧美在线免费观看| 亚洲欧美精品在线| 在线观看欧美视频| 国产精品视频免费在线观看| 欧美大片第1页| 久久久久久久久综合| 中国成人亚色综合网站| 在线日韩av永久免费观看| 国产精品永久免费观看| 欧美日韩岛国| 欧美极品一区二区三区| 久久成人国产精品| 一区二区三区国产在线| 最新日韩在线视频| 国产精品盗摄久久久| 欧美精品福利| 久久久噜噜噜久噜久久| 性欧美暴力猛交另类hd| 日韩亚洲欧美在线观看| 亚洲欧洲精品一区二区三区| 国产亚洲制服色| 国产一区二区毛片| 国产九色精品成人porny| 国产精品国产三级国产专区53| 蜜桃av噜噜一区| 免费看的黄色欧美网站| 欧美一区二区三区在线视频| 香蕉精品999视频一区二区 | 久久久久久久波多野高潮日日| 亚洲欧美资源在线| 亚洲综合色丁香婷婷六月图片| 一本色道久久综合亚洲精品不 | 久久久7777| 亚洲激情一区二区| 国产视频不卡| 国产一区二区中文| 国产日韩欧美视频在线| 国内外成人免费激情在线视频网站| 国产精品一区二区三区久久| 国产欧美一区二区三区久久| 国产精品每日更新在线播放网址| 国产精品日韩欧美一区二区三区| 国产精品二区三区四区| 国产欧美日韩视频在线观看| 国产日韩精品在线| 亚洲电影免费观看高清完整版在线观看| 国产主播一区二区三区| …久久精品99久久香蕉国产| 亚洲国产精品一区二区第四页av| 亚洲免费大片| 亚洲一区二区动漫| 久久av一区| 免费成人性网站| 欧美视频亚洲视频| 国产曰批免费观看久久久| 亚洲电影视频在线| 亚洲视频播放| 久久不射电影网| 狠狠色丁香久久婷婷综合_中| 国产一区视频观看| 亚洲高清激情| 亚洲自拍偷拍色片视频| 欧美亚洲一区三区| 欧美成人中文字幕| 国产精品久久精品日日| 红桃视频国产一区| 一本一道久久综合狠狠老精东影业| 亚洲一区国产精品| 久久人人97超碰精品888| 欧美破处大片在线视频| 国产欧美日韩一区二区三区在线| 一区二区三区在线视频免费观看| 夜夜嗨av色综合久久久综合网| 香蕉成人啪国产精品视频综合网| 欧美国产日韩视频| 国产精品人人做人人爽人人添| **欧美日韩vr在线| 亚洲欧美在线磁力| 欧美日韩91| 韩日在线一区| 亚洲欧美国产va在线影院| 老司机午夜精品视频| 国产精品伦子伦免费视频| 亚洲日本无吗高清不卡| 久久久精品免费视频| 国产精品日韩在线观看| 99精品免费| 欧美顶级大胆免费视频| 狠狠色噜噜狠狠色综合久|