热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Rust的Web服务器就像Apache到PHP一样

如何解决《Rust的Web服务器就像Apache到PHP一样》经验,为你挑选了1个好方法。

在PHP中,我们将Apache(或Nginx)作为HTTP服务器.它们也是PHP Web开发的事实标准.

在Rust中,Web上的几乎所有示例都是通过"Cargo run"命令运行自己的HTTP服务器(或"hyper"库),然后在浏览器中转到localhost以查看结果.似乎没有人会在Apache/Nginx上部署它.

为什么Rust程序没有部署在提供如此多有用和成熟功能的现有HTTP服务器中(例如VirtualHost,Alias,SSL,mod_rewrite等)?

此外,使用此Web服务器比Apache/Nginx有什么好处?

在生产环境中,您是否也使用超级库作为Rust的Web服务器?



1> Treebasher..:

在PHP之外的其他东西编写Web应用程序时,常见的方法是使用Apache或NGINX作为面向公众的服务器.然后在Apache或NGINX中设置虚拟主机以充当远程代理,它将所有连接转发到您的Web应用程序(Rust,Golang,Python,Node.js等等),这些连接本身就是自己运行的服务器绑定到localhost上的非80端口.

对于(粗略)视觉示例:

+++++++++++++++++++++++ SERVER +++++++++++++++++++++++++++++++++++
+  [Web Application (bound to localhost:8080)]                   +
+                      /|\                                       +
+                       | reverse proxy connection               +
+                      \|/                                       +
+  [NGINX (bound to remote_address::80 and remote_address:443)]  +
+++++++++++++++++++++++++/|\+++++++++++/|\++++++++++++++++++++++++
                          |             |
                         \|/           \|/
                     ++++++++++++  ++++++++++++
                     +  CLIENT  +  +  CLIENT  +
                     ++++++++++++  ++++++++++++

这种方法(通常)更安全,允许您轻松使用成熟Web服务器的功能(例如SSL,负载平衡等),并允许您专注于编写健壮的Web应用程序而不是编写一个强大的Web服务器.

请查看本文,了解有关如何将NGINX设置为反向代理的文档.虽然Apache同样有能力,但NGINX在创建Web应用程序和堆栈时往往是首选的Web服务器,因为它的速度和相对轻量级的事实.

值得一提的是,这种体系结构与PHP和Apache之间的区别在于简单地说,PHP作为"扩展模块"运行到Apache而不是"外部组件".实际上,当你将PHP与NGINX一起使用时,你必须以与本文所述非常相似的方式进行设置.


另一个类似于代理HTTP的选项是FastCGI https://softwareengineering.stackexchange.com/questions/178698/web-interface-with-fastcgi-or-with-direct-http
推荐阅读
author-avatar
吉祥话如意
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有