问题标签 [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 - 如何将 Starman 请求代理到 Apache?
我将starman 用于我的网络应用程序。Apache Web 服务器侦听端口 8080。我想在 Starman 中重写一些请求,例如'/request'
对这个 Apache Web 服务器的请求。我试图找到一些下午,但我找到了一些帮助我的例子。
perl - 基于 Twiggy 的 PSGI 应用程序的初始化脚本
我正在寻找一种方法来通过一个简单的配置文件和一个标准接口来管理多个监听不同端口的 Twiggy 实例。
例如,我想要一个看起来像
以及 /etc/init.d 中的一个脚本,其使用如下
我的一些同事建议使用 runit,它看起来很有希望,但是我对它还不够熟悉。
在开始编写自己的脚本之前,我敢于问:是否已经存在?
perl - 使用 PSGI,是否可以更改上传文件的命名方式?
我有一个小型 PSGI 应用程序,它从表单上传并将其传递给另一个脚本进行处理:
该文件已成功上传,类似于/tmp/Fw8n6j0ICn.txt
. 问题是,处理依赖于文件在上传时被命名。
是否可以更改文件的上传方式以便它们转到/tmp/Fw8n6j0ICn/original_name.txt
?
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 - 基于 Unix 域套接字的 Apache-to-PSGI 代理
我们有许多(隔离的)PSGI 应用程序安装在同一台机器上,因此需要它们的 PSGI 服务器在唯一的端口上运行。从资源/管理的角度来看,这不太理想,但是当 Unix 域套接字在同一台机器上运行时似乎更明显的选择时,它还需要 TCP/IP 的(尚未测量且可能微不足道的)“开销” .
幸运的是,该应用程序在 Plack 的 HTTP 接口下工作(通过 mod_proxy 的“ProxyPass”从 Apache 代理),但不幸的是,它在 FastCGI 接口下中断(参见:https ://stackoverflow.com/questions/14643165/can-psgi-apps- fork-under-plackhandlerfcgi)。
除了 mod_fastcgi 的 FastCgiExternalServer(或使用此未经测试的用户贡献补丁修补 mod_proxy:http: //mail-archives.apache.org/mod_mbox/httpd-dev/201207.mbox/%3C20120731200351.GB11038@gmail.com%3E) ,有没有办法通过 Unix 域套接字将Apache 连接代理到 PSGI 应用程序?
perl - PSGI, LWP::UserAgent & PayPal IPN
I have been trying for some time to get a simple PayPal IPN module working but keep getting a 400 Bad Request error from LWP::UserAgent. I am not sure why this is happening. PayPal pings me fine (I'm using the IPN simulator) and I can see the process in my app logs. I can call the PayPal validation URL via LWP::UserAgent without form content and that works fine, but once I include the request content for validation I get error 400. If anyone knows about this please let me know.
-$self->{'_req'} is of type Plack::Request
perl - 非事件驱动的 HTTP 服务器环境中的服务器端 Websocket 实现
我试图了解服务器端 Websocket 端点的实现/选项 - 特别是在使用 PSGI/Plack 的 Perl 中,我有一个问题:为什么所有服务器端 Websocket 实现都基于事件驱动的 PSGI 服务器(Twiggy、Tatsumaki 等)? )?
我知道 websocket 通信是异步的,但是一个非事件驱动的 PSGI 服务器(比如 Starman)可以产生一个异步侦听器来处理 websocket 方面的事情。我已经看到(但不理解)Websocket 服务器的 PHP 实现,那么为什么不能在不将服务器更改为事件驱动的情况下对 PSGI 进行同样的操作呢?
perl - 使用 Plack/PSGI/Poet 应用程序进行身份验证和/或 HTTPS
我需要构建一个简单的网络应用程序。我决定与使用 Plack的Poet ( Mason2 ) 一起做。
该应用程序应该只允许经过身份验证的用户使用,所以我需要构建一些登录/密码功能。
已经有一个 Plack 模块Plack::Middleware::Auth::Basic允许使用基本用户身份验证,从而可以设置检查.htpasswd
或类似的。但是基本认证不是很安全;任何人都可以通过抓包等方式获取登录密码。
这里有两种可能的解决方案:
- 通过 HTTPS(443) 运行我的 app.psgi - 链接级加密
- 还是有一些更好的身份验证方法可以在没有 https 的情况下进行安全身份验证?
问题:
- 关于 HTTPS - 我不知道如何
app.psgi
通过 HTTPS 运行我的。我需要稍微修改我的应用程序吗?任何链接都告诉我如何plackup
通过 https 运行? - 或者第二个:是否有某种方法(中间件/或 perl 模块)允许我在标准未加密端口上构建 安全身份验证?(80)
那么,使用 Plack 应用程序实现安全身份验证的相对简单的方法是什么?
PS:我不关心其余的沟通。我只需要不允许获取密码的安全身份验证。
PPS:使用 apache(和自签名)证书很容易实现 https。但我不知道如何使用plackup
(和或任何其他基于 Plack 的服务器)
perl - 使用 Apache 反向代理处理 plack/PSGI 应用程序的身份验证
这是我的场景:
所以,
- 通过加密 HTTPS 的请求转到 Apache,例如:
https://server1/MyPerlApp
- 如果用户未登录,他们会重定向到某个登录页面(在 server1 中),并且 Apache 不会将请求代理到 Server2
- 当用户登录时 - 已通过身份验证 - 然后 Apache 将所有请求转发
https://server1/MyPerlApp
到http://server2:5000
问题1:这可能吗?(问,因为我对 Apache 的了解不够深入,这也不是一个简单的:
因为我需要在 server1 上对用户进行身份验证,并设置ProxyPass
只有经过身份验证。由于 Apache 非常灵活,我认为上述答案是肯定的(但非常欢迎确认和详细说明) - 所以这是我的主要具体问题:
- 我的 Plack 应用程序如何知道在 Apache 级别(即在第一台服务器上)验证了哪些用户?
- 将一些用户信息传递到
perl
server2 上的应用程序的简单方法是什么?例如,使用 Apache将参数mod_rewrite
附加user=username
到每个查询, - Apache 可以设置我的
perl
应用程序应该读取的一些 HTTP 标头吗? - 有没有简单和推荐的方法?
我正在寻找如何在我的 starman/perl 应用程序中避免身份验证例程,主要是因为:
- 用户无论如何都需要登录到 server1(对于他的工作流程中的其他任务)
- 如果他已经登录,则不需要在我的应用中进行身份验证(避免不必要的双重登录)
- 但我仍然需要知道哪些用户已登录(通过 server1 上的 Apache)
已经有类似的问题,但是:
- https://stackoverflow.com/q/12561830/734304(没有答案)
- https://stackoverflow.com/q/11907797/734304(没有答案)
- 具有基本身份验证的 Apache 反向代理(类似,但后端在同一服务器和同一 apache 中)
perl - 如果我的 Web 框架想要支持 PSGI,是否需要将 mod_rewrite 规则转换为 Plack::Middleware::Rewrite 规则?
我们有一个基于 FastCGI 的 Web 框架,我们在内部将其用于一些关键任务应用程序。因此,迁移到现有的 PSGI 投诉框架不是很实用。我们已经成功地将我们的框架从普通的旧 CGI.pm 转移到了 Plack 处理程序。
然而,在 Apache 的配置文件中有相当多的路由逻辑,以 mod_rewrite 规则的形式。如果我们要通过 Apache 中的反向代理使用 Plack::Handler::FCGI 部署使用我们新的 PSGI 兼容框架的应用程序,我想 mod_rewrite 规则可以继续在那里工作,并进行一些调整。(计划这样做,但尚未尝试)。
然而,阅读有关 Plack::Middleware::Rewrite 作为 mod_rewrite 的替代品的文章让我很感兴趣。
我是否需要将 mod_rewrite 规则转换为 Plack::Middleware::Rewrite 规则并将所有应用程序逻辑完全移动到 Perl 才能获得 PSGI 的全部好处?
我认为答案是肯定的,但我没有部署 PSGI 应用程序的经验,所以如果有人能分享他们的经验以确保我走上正确的道路,我将不胜感激。
子问题 PSGI 的想法是否就是让 Web 服务器尽可能少(和尽可能快地)做事,并将所有其他东西委托给应用程序服务器(中间件)?**