问题标签 [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.

0 投票
0 回答
94 浏览

perl - Plack 没有从 Catalyst 中恢复

我有一个应用程序可以选择从磁盘提供文件 - 或者转到 Catalyst 并生成一个动态文件。

像这样的东西(在 call() 内部):

我想在它回来时设置一些 cookie。所以我使用 Plack::Util

结果?在第一种情况下(Plack::App::File),一切都按预期工作。在第二个(以正常方式继续使用应用程序)它永远不会回来。

我想知道为什么会这样?这是我的 psgi 初始化:

0 投票
1 回答
974 浏览

perl - Plack::App::CGIBin 通过 Apache 和 mod_fastcgi - 找不到 CGI 脚本

我正在尝试Plack::App::CGIBin在 FreeBSD 8.2 上使用 Apache2 和 FastCGI。最终目标是能够使用此设置通过 Plack 为一大堆遗留 CGI 脚本提供服务,以利用其中间件功能,但我什至无法让一个简单的示例正常工作。

我已经关注了Plack::Handler::FCGIPlack::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在类似的情况下工作过?我将不胜感激任何见解!

谢谢

0 投票
0 回答
108 浏览

web-services - PSGI 和 WSDL - WSDL 如何“公开”?

我的问题是我有这两个文件:

1.-马卡斯.psgi

2.- IFSoft.wsdl

要运行 marcas.psgi,我所做的是:

plackup marcas.psgi

如何通过WSDL访问该marcas.psgi那个WSDL有多“公开” ?

非常感谢你所做的一切。

0 投票
2 回答
5010 浏览

perl - Perl CGI 与 FastCGI

我已经在 Perl 上编程很长时间了,我一直使用 CGI 技术来构建我的应用程序。现在我想重建它们并在 FCGI 上编写新的。请用 fe Starman 解释 unsing FastCGI 和 PSGI 之间的区别。我还想解释一下今天“流行”的 Perl 框架(使用 FCGI)是什么?我知道我可以使用 CGI::Fast 强制我的 CGI 脚本像 FCGI 脚本一样工作。有没有其他模块可以做到这一点?

谢谢!

0 投票
1 回答
434 浏览

perl - 在 PSGI/Plac 应用程序中分叉的正确方法 (Perl)

我有一个这样的问题 - 在 PSGI/Plack 应用程序中分叉的正确方法是什么?

一方面我知道 PSGI 应用程序是“后端不可知的”,所以它可以使用不同的方法运行 - FastCGI、CGI 等但另一方面我知道例如在 FastCGI 应用程序中我们需要做一些操作FCGI::Request 对象在 fork 之前/之后。

那么我必须做什么?

  1. 只是叉子:)
  2. 做一些魔术操作和分叉(什么操作?)
  3. 重写应用程序架构 => 将所有繁重的操作移至外部守护进程。
0 投票
2 回答
542 浏览

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->runMyApp->psgi_app结果:

可以通过以下方式复制此错误:

0 投票
1 回答
114 浏览

perl - app.psgi 中 Perl 的 BEGIN 块

我了解 BEGIN 在主程序之前执行。问题是:

  • 谈论 PGSI 应用程序时的主程序是什么——或者更好
  • 什么时候在 PGSI 应用程序中执行 BEGIN 块?
  • 它是不同的plackup还是Starman和喜欢?
  • 中间件呢?什么时候有多个BEGIN 块?

示例app.psgi

将按什么顺序执行多个 BEGIN 块中定义的内容My::CgiApp1和 my app.pgsi

从上述 PSGI 应用程序的角度来看,使用的主要区别是什么:

或者一个简单的

0 投票
1 回答
250 浏览

perl - 如何发现 app.psgi 进程在哪个服务器上运行?

有没有办法发现app.psgi正在运行的服务器?

例如,我正在寻找一些关于如何解决 app.psgi 中的下一个代码片段的想法:

检查PLACK_ENV环境变量不是解决方案...

0 投票
1 回答
1553 浏览

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 应用程序的最佳方法是什么?

0 投票
1 回答
177 浏览

perl - Catalyst 事件循环一次只能到达一个客户端

我正在开发一个可以充分利用异步流的Catalyst / psgi应用程序,但是除了一个简单的计时器(比如这里:http: //www.catalystframework.org/calendar/2013/13),我有点对如何实施更多“全球”事件感到困惑。

通过全球事件,我的意思是:

  1. 对所有客户端都相同的周期性计时器
  2. 单个客户端对给定页面的访问(但会更新所有客户端)
  3. 一个文件状态观察器,当文件更改时将更新所有客户端。

如果我错了,请纠正我,但对我来说,这些似乎与上面链接的示例非常不同,这将为每个客户提供不同的计数器。我希望有“全面”发生的事件。

我尝试过的一个例子(使用上面列表中的#2):

当我运行它时,它实际上比我预期的更进一步 - 事件确实被触发,但不可靠。打开两个浏览器时,有时将事件发送到一个,有时发送到另一个。

现在,我想我明白为什么这永远行不通了——点击 /trigger 的客户端不知道所有其他正在观看 /stream 的客户端,因此我尝试使用的 write_fh 没有用。

但是,如果每个客户的请求都在自己包含的气泡中,我如何从其他请求访问他们的流?

还是我完全走错了路……?