我試圖加快我的Perl腳本在nginx服務器上。在測試腳本中,如果我註釋掉3 .pm文件(所有這些都是自己的東西)的「使用」請求......腳本會丟失大約600毫秒的加載時間!現在我的猜測是,它是因爲它不得不從請求的子模塊中加載子模塊。例如:將Perl模塊加載到Nginx的內存中,使速度更快?
use WebService::Solr;
use WebService::Solr::Query;
use Want::View;
use JSON;
use POSIX;
在阿帕奇與的mod_perl,您可以設置啓動腳本,因此「進口」的模塊到內存(使其更快)。與nginx和Perl類似嗎?我現在的腳本需要1.1秒的時間來處理(其中800-900ms是「等待」響應!!!!),所以我真的需要看到關於加速它。
更新:我發現了這一點,但它似乎並沒有工作:
http://search.cpan.org/~zzz/Nginx-Perl-1.2.9.7/src/http/modules/perl/Nginx.pm#DESCRIPTION
location ~ \.cgi$ {
perl_inc /usr/local/share/perl/5.20.2/;
# perl_require WebService/Solr;
... rest
}
我得到一個錯誤:
nginx: [emerg] unknown directive "perl_inc" in /etc/nginx/sites-enabled/site.net:134
我想知道如果因爲我需要安裝「Nginx」Perl模塊。當我嘗試通過MCPAN安裝時,我得到一個模具:
-lpthread -lcrypt -lcrypto -lcrypto -lz \ -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.20/CORE -lperl -ldl -lm -lpthread -lc -lcrypt /usr/bin/ld: cannot find -lperl collect2: error: ld returned 1 exit status objs/Makefile:213: recipe for target 'objs/nginx-perl' failed make[1]: * [objs/nginx-perl] Error 1 make[1]: Leaving directory '/root/.cpan/build/Nginx-Perl-1.2.9.7-dbUMQF' Makefile:9: recipe for target 'build' failed make: * [build] Error 2
ZZZ/Nginx-Perl-1.2.9.7.tar.gz /usr/bin/make -- NOT OK
謝謝!
我不能幫助nginx的具體細節,但如果你沒有找到更好的東西,你仍然可以設置Apache和mod_perl,並有nginx路由Perl請求那裏。 –
@NickP - 謝謝。我試圖避免Apache作爲代理服務器,因爲它在服務器上運行的還有一件事情:) –
如果我告訴你任何你認爲明顯出血的東西,請原諒我,但是「ld:找不到-lperl」意味着你不願意沒有安裝libperl,那麼你可以安裝它嗎? – Michael