PerlWeb服务(服务器)最佳实践
我目前正在使用中修改的服务器 与SOAP::WSDL和web服务相结合以提供web服务 由各种客户端类型和角色使用 ----这不是问题,以下是----- 我希望就以下主题达成最佳解决方案(尽可能):PerlWeb服务(服务器)最佳实践,perl,web-services,authentication,ssl,authorization,Perl,Web Services,Authentication,Ssl,Authorization,我目前正在使用中修改的服务器 与SOAP::WSDL和web服务相结合以提供web服务 由各种客户端类型和角色使用 ----这不是问题,以下是----- 我希望就以下主题达成最佳解决方案(尽可能): 请求/调度/响应速度 协议安全性(正确使用客户端验证的SSLv3/TLS) 资源安全性(基于每个资源和每个方法的安全角色/特征) 类型、方法签名和所需安全角色和特征的声明性规范 问题: 我希望使用基于or的服务器,但我知道这与服务器内客户端身份验证SSL不兼容我的理解正确吗? 我不想在每次请求时
- 请求/调度/响应速度
- 协议安全性(正确使用客户端验证的SSLv3/TLS)
- 资源安全性(基于每个资源和每个方法的安全角色/特征)
- 类型、方法签名和所需安全角色和特征的声明性规范
在Perl中这样做简直是疯了:-) 说真的,给你更多的力量。我的问题是,假设你有理由重新发明这个轮子,为什么不考虑Python呢?Perl是活的,而且很好,但是这种事情(低级脚本)现在很多都是在Python中完成的
最后,假设你没有实际的理由去做这个(除了好玩),你应该真正考虑一个Web框架(当然是Django)和类似NGNIX来处理HTTP交互。
< P>好的,每个人都回答了所有的问题,但是真正的问题。我将在单独的帖子中将其分解为具体的问题,并且不会提及服务器的组成-这是本帖中的每个人似乎都想讨论的主题,而且完全不相关。我知道这是一个老问题,但仅供参考
IO::Async
可以很好地使用SSL,从模块开始。为什么您要自己编写服务器?您是否需要做一些其他服务器(如apache或lighttpd)无法为您做的特殊事情?服务器部分是最简单的部分。也许我应该在我的帖子中更加强调安全和授权主题。我试用了一系列服务器配置,包括Apache、lighthttpd和NginX、HTTP::Daemon和HTTP::Daemon::Threaded等服务器。。。在我现有的(线程化的)代码库(一些单元,一些actorish)中,我发现在考虑“另一个服务器”情况下的启动/调度之后,最理想的解决方案是HTTP::Daemon::threaded。但实际上,这是次要的。我只包含了这些信息,以便限制对我所问主题的讨论:安全性、声明性WSDL键入和授权,以及最后(但不排除)请求/发送/响应速度。@David:这并没有真正为我澄清任何问题。就你在帖子和评论中所说的,听起来apache或lighthttpd都可以轻松处理。我已经为这些写了很多奇怪的身份验证方案。是否仅仅是线程化的perl驱动了这一决策?那么,也许您可以举出一些例子。我不明白apache或lighthttpd在“声明性WSDL类型和授权”方面给了我什么优势。他们是否有一些预先构建的面向SOAP的基础设施,我可以将其用于像Perl这样的松散类型语言?我很清楚,任何服务器都可以完成SSL部分。我的问题wrt安全是关于使用Cookie来避免不断地重新验证SSL客户端证书。这不是为了好玩。这是一次尝试,在重新使用数千个以前编写的Perl模块的同时,对现有基础设施进行现代化改造。在任何情况下,Django是否自动向我提供了我所询问的那种授权基础设施?我确实使用NginX处理静态HTTP内容。我发现(线程化的)纯perl服务器同样快,而且更灵活。最近的替代方案是带有线程调度程序的NginX+FastCGI。。。这在一天结束时实际上是一样的,只是现在我必须处理一个外部系统来进行客户端证书验证。在查看Django文档之后——也许我遗漏了一些东西——我看不到任何声明性WSDL类型和角色+特征授权是可能的,更不用说可用了。是否有贡献的库可以做到这一点,或者至少提供了一个起点?我不排除用另一种语言(如Python)来完成这一部分,毕竟我可以将最终请求委托给我现有的服务器——只要它不花费太多。在这种情况下,我认为Perl和Python是等效的工具。也许Perl在CPAN方面有优势,但Python将无法完成Perl(甚至Ruby)无法完成的任务。David,Django将为您提供访问HTTP信息以进行HTTP身份验证的权限,然后您必须将其插入某种身份验证机制()。或者,您可以使用它们的内置authentiçation()。然后,使用FLUP作为cgi服务连接到nginx。Nginx不讲wsgi,所以如果您想使用Nginx,就不能选择wsgi