簡體   English   中英

使用FastCGI在Apache之外運行Plack PSGI Perl應用程序的最佳方法?

[英]Best way to run a Plack PSGI Perl application outside of Apache using FastCGI?

我目前正在運行Apache / mod_perl,其中包含由Plack :: Handler :: Apache2調用的PSGI應用程序。 我們遇到的問題是每個Apache進程都消耗與PostgreSQL數據庫的連接,這很昂貴。 為了解決這個問題,我們計划將PSGI應用程序與Apache分開運行,並讓所有Apache進程通過UNIX域套接字與之通信。 在我的案例中你會推薦什么設置?

我的計划是使用plackup運行它:

plackup -s FCGI -E production --nproc 100 --daemonize --listen /tmp/myapp.sock \
/usr/local/bin/myapp.psgi

我問Plack的作者,Tatsuhiko Miyagawa,如果將plackup -s FCGI推薦用於生產目的。 他提供了以下答案:

“雖然它可以用於制作,但我通常建議使用其他專業服務器,如Starman,Starlet或uwsgi.FCGI是一個例外,因為除了默認的Plack :: Handler之外我們沒有特定的FCGI守護進程。我們有一個計划將FCGI拆分出Plack核心並將其作為一個單獨的安裝。“

現在,直到FCGI從Plack中分離出來,問題是,在Apache之外使用FastCGI運行PSGI應用程序的最佳方法是什么?

如果你堅持使用FastCGI協議,可以讓Apache使用連接到外部FastCGI服務器mod_fastcgiFastCgiExternalServer指令(注意mod_fcgid 支持這種操作模式)。 這應該與Plack內置的FCGI處理程序一起使用。

但正如Tatsuhiko所說,建議使用像Starman或Starlet這樣的服務器作為HTTP上的反向代理。 所以你會在Apache端使用mod_proxy 使用Apache 2.4.7,還可以通過Unix域套接字進行通信

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM