是否有Perl PSGI / Plack服务器只能说PSGI而不是HTTP?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了是否有Perl PSGI / Plack服务器只能说PSGI而不是HTTP?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2082字,纯文字阅读大概需要3分钟。
内容图文
通常的部署过去和现在都像我一样:
+------------------+ +---------+ tcp +-------+ tcp
| PSGI Application |----o| Starman |---->| nginx |<----(internet)
+------------------+ +---------+ +-------+
事实上,我确实在互联网和实际的Web应用程序之间有两个完全成熟的Web服务器.
由于nginx直接内置了uWSGI而且uWSGI支持PSGI协议,这是WSGI的一个分支,我很乐意使用PSGI代理(只有PSGI没有HTTP)而不是完整的Web服务器(Starman).
是否有PSGI-only-broker解决方案?
解决方法:
PSGI ‘protocol’(如WSGI)本质上是子例程的调用约定.请求作为子例程调用进入应用程序,并将哈希作为参数.应用程序通过子例程的返回值进行响应:包含HTTP状态代码,HTTP标头和正文的arrayref.除此之外还有更多,但这些都是必需品.
这意味着如果进程包含Perl解释器,进程只能实现PSGI.为了实现这一点,该过程可以在Perl中实现,也可以用C语言实现,可以加载libperl.so共享库.类似地,如果进程包含Python解释器,则进程只能实现WSGI.
您的框图包含三个部分,但实际上PSGI应用程序位于Starman流程中.所以实际上只有两个部分(尽管两个部分都是多处理容器).
你说“nginx有uWSGI直接构建”.这并不意味着WGSI应用程序在Nginx进程内运行.这意味着WSGI应用程序在单独的uwsgi进程中运行,Nginx使用uWSGI协议通过TCP套接字与该进程通信.这与Nginx与Starman背后的模型基本相同,但与Starman的套接字连接的区别在于使用HTTP协议:
.----------------------. .-----------.
| Starman | | Nginx |
| | HTTP | | HTTP
| .------------------. |<---------| |<-------(internet)
| | PSGI Application | | | |
| '------------------' | | |
'----------------------' '-----------'
HTTP协议确实比uWSGI协议具有更高的开销,因此您可以通过运行说出uWSGI套接字协议的应用程序服务器来获得更好的性能,并且可以加载libperl.so来实现PSGI接口. uWSGI can do that:
.----------------------. .----------.
| uWSGI | | Nginx |
| | uWSGI | | HTTP
| .------------------. |<----------| |<-------(internet)
| | PSGI Application | | | |
| '------------------' | | |
'----------------------' '----------'
内容总结
以上是互联网集市为您收集整理的是否有Perl PSGI / Plack服务器只能说PSGI而不是HTTP?全部内容,希望文章能够帮你解决是否有Perl PSGI / Plack服务器只能说PSGI而不是HTTP?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。