问题标签 [psgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Plack 没有从 Catalyst 中恢复
我有一个应用程序可以选择从磁盘提供文件 - 或者转到 Catalyst 并生成一个动态文件。
像这样的东西(在 call() 内部):
我想在它回来时设置一些 cookie。所以我使用 Plack::Util
结果?在第一种情况下(Plack::App::File),一切都按预期工作。在第二个(以正常方式继续使用应用程序)它永远不会回来。
我想知道为什么会这样?这是我的 psgi 初始化:
perl - Plack::App::CGIBin 通过 Apache 和 mod_fastcgi - 找不到 CGI 脚本
我正在尝试Plack::App::CGIBin
在 FreeBSD 8.2 上使用 Apache2 和 FastCGI。最终目标是能够使用此设置通过 Plack 为一大堆遗留 CGI 脚本提供服务,以利用其中间件功能,但我什至无法让一个简单的示例正常工作。
我已经关注了Plack::Handler::FCGI和Plack::App::CGIBin本身的 CPAN 文档,但我不确定我是否遗漏了某些内容或做错了这些文档未涵盖的内容。
这是我添加的 Apache 配置:
运行外部服务器的命令:
服务器启动成功,返回如下:
这是 app.psgi:
然后我有一个简单的 CGI 脚本/data/www/plack/test.cgi
(这个文件在 CGI.pm 下运行良好)。
我期望的是对http://<domain>/plack/test.cgi/
(包括尾部斜杠)的请求将返回测试脚本,但我总是在 Apache 错误日志中收到以下 404 错误,我认为这是从 FastCGI 服务器返回的:
我已经让 FastCGI 自己工作,使用 mod_fastcgi 和应用目录中的一个简单示例脚本SetHandler fastcgi-script
,所以至少可以工作:-)。
有没有人Plack::App::CGIBin
在类似的情况下工作过?我将不胜感激任何见解!
谢谢
web-services - PSGI 和 WSDL - WSDL 如何“公开”?
我的问题是我有这两个文件:
1.-马卡斯.psgi
2.- IFSoft.wsdl
要运行 marcas.psgi,我所做的是:
plackup marcas.psgi
如何通过WSDL访问该marcas.psgi?那个WSDL有多“公开” ?
非常感谢你所做的一切。
perl - Perl CGI 与 FastCGI
我已经在 Perl 上编程很长时间了,我一直使用 CGI 技术来构建我的应用程序。现在我想重建它们并在 FCGI 上编写新的。请用 fe Starman 解释 unsing FastCGI 和 PSGI 之间的区别。我还想解释一下今天“流行”的 Perl 框架(使用 FCGI)是什么?我知道我可以使用 CGI::Fast 强制我的 CGI 脚本像 FCGI 脚本一样工作。有没有其他模块可以做到这一点?
谢谢!
perl - 在 PSGI/Plac 应用程序中分叉的正确方法 (Perl)
我有一个这样的问题 - 在 PSGI/Plack 应用程序中分叉的正确方法是什么?
一方面我知道 PSGI 应用程序是“后端不可知的”,所以它可以使用不同的方法运行 - FastCGI、CGI 等但另一方面我知道例如在 FastCGI 应用程序中我们需要做一些操作FCGI::Request 对象在 fork 之前/之后。
那么我必须做什么?
- 只是叉子:)
- 做一些魔术操作和分叉(什么操作?)
- 重写应用程序架构 => 将所有繁重的操作移至外部守护进程。
perl - 为什么 Test::WWW::Mechanize::PSGI 使用端口?
我有一些看起来像这样的代码:
但是,一旦get_ok()
被调用,我就会收到以下警告:
是的,我正在将该端口用于其他用途。来自Test::WWW::Mechanize::PSGI 的文档:
此模块允许您测试 PSGI Web 应用程序,但不需要服务器或发出 HTTP 请求。相反,它将 HTTP 请求对象直接传递给 PSGI。
所以理论上,我不需要指定端口,但我收到了上述警告,并且获取的页面返回 500(它们在浏览器中工作正常)。我错过了什么?
- 测试::WWW::Mechanize::PSGI 版本 0.35
- Plack 版本 1.0030
- 催化剂版本 5.90051
更改MyApp->run
为MyApp->psgi_app
结果:
可以通过以下方式复制此错误:
perl - app.psgi 中 Perl 的 BEGIN 块
我了解 BEGIN 在主程序之前执行。问题是:
- 谈论 PGSI 应用程序时的主程序是什么——或者更好
- 什么时候在 PGSI 应用程序中执行 BEGIN 块?
- 它是不同的
plackup
还是Starman
和喜欢? - 中间件呢?什么时候有多个BEGIN 块?
示例app.psgi
:
将按什么顺序执行多个 BEGIN 块中定义的内容My::CgiApp1
和 my app.pgsi
?
从上述 PSGI 应用程序的角度来看,使用的主要区别是什么:
或者一个简单的
perl - 如何发现 app.psgi 进程在哪个服务器上运行?
有没有办法发现app.psgi
正在运行的服务器?
例如,我正在寻找一些关于如何解决 app.psgi 中的下一个代码片段的想法:
检查PLACK_ENV
环境变量不是解决方案...
apache - 使用 FastCGI 在 Apache 之外运行 Plack PSGI Perl 应用程序的最佳方式?
我目前正在使用 Plack::Handler::Apache2 调用的 PSGI 应用程序运行 Apache/mod_perl。我们遇到的问题是每个 Apache 进程都使用到 PostgreSQL 数据库的连接,这很昂贵。为了解决这个问题,我们计划将 PSGI 应用程序与 Apache 分开运行,并让所有 Apache 进程通过 UNIX 域套接字与其通信。在我的情况下,你会推荐什么设置?
我的计划是使用 plakup 运行它:
我询问了 Plack 的作者 Tatsuhiko Miyagawa,是否建议将 plackup -s FCGI 用于生产目的。他提供了以下答案:
“虽然它可以用于生产,但我通常建议使用其他专用服务器,例如 Starman、Starlet 或 uwsgi。FCGI 是一个例外,因为除了默认的 Plack::Handler 之外,我们没有特定的 FCGI 守护进程。我们有一个计划将 FCGI 从 Plack 核心中分离出来并单独安装。”
现在,直到 FCGI 从 Plack 中分离出来,问题是,在 Apache 之外使用 FastCGI 运行 PSGI 应用程序的最佳方法是什么?
perl - Catalyst 事件循环一次只能到达一个客户端
我正在开发一个可以充分利用异步流的Catalyst / psgi应用程序,但是除了一个简单的计时器(比如这里:http: //www.catalystframework.org/calendar/2013/13),我有点对如何实施更多“全球”事件感到困惑。
通过全球事件,我的意思是:
- 对所有客户端都相同的周期性计时器
- 单个客户端对给定页面的访问(但会更新所有客户端)
- 一个文件状态观察器,当文件更改时将更新所有客户端。
如果我错了,请纠正我,但对我来说,这些似乎与上面链接的示例非常不同,这将为每个客户提供不同的计数器。我希望有“全面”发生的事件。
我尝试过的一个例子(使用上面列表中的#2):
当我运行它时,它实际上比我预期的更进一步 - 事件确实被触发,但不可靠。打开两个浏览器时,有时将事件发送到一个,有时发送到另一个。
现在,我想我明白为什么这永远行不通了——点击 /trigger 的客户端不知道所有其他正在观看 /stream 的客户端,因此我尝试使用的 write_fh 没有用。
但是,如果每个客户的请求都在自己包含的气泡中,我如何从其他请求访问他们的流?
还是我完全走错了路……?