问题标签 [starman]
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 - 为什么将 nginx 与 Catalyst/Plack/Starman 一起使用?
我正在尝试使用 Plack/Starman 部署我的小型 Catalyst Web 应用程序。所有文档似乎都建议我想将它与 nginx 结合使用。这样做有什么好处?为什么不在端口 80 上直接使用 Starman?
perl - uri_for 包括重定向端口号
我正在尝试使用 nginx 作为静态文件的前端 Web 代理,并使用 Starman 作为我的后端 Web 服务器来实现 Catalyst 应用程序。(我可以使用 Apache 和 FastCGI,它工作得很好,但我真的很想解决整个 PSGI / Plack 和 Starman 的问题)
Starman 启动正常,可以很好地处理我的请求http://localhost:5000
。当我启动 nginx 用作我的前端代理时,无论何时何地使用该$c->uri_for
方法,我的 url 都会变得丑陋并与端口号 (5000) 混淆。
例子 :
我有一些正在创建的日志,所以我可以看到什么X-Forwarded-Host
和X-Forwarded-For
被设置为。对于普通请求,设置了值(来自 nginx),但无论何时使用该$c->uri_for
方法,这些值都不存在。
有没有其他人有这个问题?
我在配置 nginx 或 Catalyst conf 时是否遗漏了其他内容?
谢谢!
nginx 配置:
事件虽然这将在同一物理服务器上运行,但在 MyApp 配置中我已设置:
版本:
configuration - 在 Starman(或其他 PSGI 服务器)中配置目录别名
我习惯于在 Apache httpd.conf 中为不同的目录设置别名。例如,以下对我有用
然后我可以包含路径,例如<script src="/lib/jquery/plugin/funky.js"></script>
无论应用程序路径是什么。
我正在尝试 Starman(以及其他 PSGI 服务器,例如 HTTP::Server::PSGI),但无法找到任何方法来设置配置参数,例如目录别名。
这可以做到吗?如何?
perl - 使用 Starman 在 PLACKUP 下动态加载包
我正在使用 starman 在 plackup 下运行一个 Web 应用程序,并尝试根据用户请求动态加载和实例化包。我正在使用“需要 $packageName;” 要加载包,其中 $packageName 包含包的名称,名称存储在配置文件中。然后我在实例上执行一组已知的命令,因为所有类都继承自基类并包含一组已知方法。
这在 Apache 下工作正常,但由于某种原因,plackup 说它无法找到包,即使 @INC 包含库路径并且包名称是库路径中最后一个目录的绝对名称。也就是说,包名是 Base::My::Package。
有人遇到过这个问题吗?我是否需要更新 Starman 中的其他路径?我正在使用 -I 标志执行 plackup 并更新我的环境 PERL5LIB 变量。我也在主应用程序类中尝试过'use lib /...'
,但这些都不起作用。
谢谢
perl - 在 Plack/Starman 下呼唤“忏悔”
我有一个运行 TryCatch 语句的 Plack/Starman 应用程序,该语句从 Carp 模块调用“confess”。但是我注意到坦白输出没有打印到 STDOUT。我尝试将 STDERR 输出路由到 STDOUT '2>&1',但仍然看不到任何东西。我没有运气搜索可能的错误日志文件。这种印刷在世界上的什么地方?我相信这可能是一个简单的答案。日志文件位于何处?如果这很重要,我正在一个 Ubuntu 机器上运行。
谢谢
nginx - nginx/starman/dancer web 栈的解释
我从事网络编程已经有一段时间了,对 LAMP 堆栈非常熟悉。我决定尝试使用 nginx/starman/dancer 堆栈,但我对如何从高层次理解所有部分如何相互关联感到有些困惑。设置堆栈似乎不像设置 LAMP 堆栈那么简单,但这可能是因为我不太了解这些部分之间的关系。
我了解 nginx 所扮演的角色——一个轻量级的网络服务器/代理——但我对 starman 与 pgsi、plack 和 dancer 的关系感到困惑。
我希望对这些部分如何相互关联以及为什么每个部分都是必要的(或不必要的)进行堆栈设置进行高级分解。谢谢!
perl - 如何将 Starman 请求代理到 Apache?
我将starman 用于我的网络应用程序。Apache Web 服务器侦听端口 8080。我想在 Starman 中重写一些请求,例如'/request'
对这个 Apache Web 服务器的请求。我试图找到一些下午,但我找到了一些帮助我的例子。
perl - Starman and MovableType 5.2
MovableType 5.2 has builtin PSGI support (via a mt.psgi in the main directory) and I've been trying to take advantage of it using starman/plackup.
Starman w/ MT fires up, but I get odd Not Founds and a silent hang & fail when I run mt-upgrade.cgi.
How I am running starman:
Mystery 1: My browser returns "Not Found" for index.html, but mt-static and mt.cgi is reachable.
Mystery 2: Due to the redirect I believe that MT code is running. But it is mostly silent in the starman log even though I have tried different MT debug options. Worse, the mt-upgrade.cgi seems to be reached then fails with this lone message to the starman log:
This non-buffering message seems informational and normal, and is coming from the MT codebase.
I have also run directly under starman and get the same result.
Any ideas or help would be appreciated!
System/Environment:
CPAN modules:
MT config:
perl - 当 Starman 收到 HUP 时 ZMQ 套接字阻塞
我有以下代码。我想$pub->close
在starman服务器接收到HUP信号时调用该方法。
- 我怎么知道子进程结束了?
- 我可以使用 END {} 块吗?我试过这个,它似乎在 plackup 重新启动时工作(在编辑之后)。我用starman试过这个。我发送了 HUP 信号,但孩子们没有重新启动。
- 我应该为 HUP 安装信号处理程序吗?这是如何运作的?
我想在孩子重新启动之前进行清理,如果我不这样做,子进程将阻塞。
这是我使用的 .psgi 文件。