目前我正在使用web.py在python中开发Web服务,它提供不同的功能。像
这样的东西BigQueryService.py
LogicImplementer.py
PostgreService.py
在本地计算机上运行时,每项服务都能正常运行。在服务器上部署之后,由于我正在引用其他python脚本,它会返回模块错误。
由于我们必须在同一端口上运行所有服务,因此我将所有脚本粘贴到一个名为Engine
的文件中,并使用命令使其工作
$ nohup python Engine.py 8080
&
有没有更好的方法在web.py中构建服务?或者有没有办法在同一个端口上运行所有单个脚本?
答案 0 :(得分:2)
如果每个服务在端口上创建自己的侦听器/服务器套接字,则答案为否。您将需要使用具有单个服务器端口的应用服务器的等效服务器,并且通常基于相对路径将传入请求分发到相关应用程序(在服务器上运行) - 例如, http://myserver.net:8080/bqs路径传递给您的BiqQueryService,/ li传递给LinkImplementor,/ pgs传递给PostgreService。 Flask会做这样的事情,我确信其他的Web服务框架也会这样。服务器将处理所有通信内容,将请求传递给应用程序(例如bqs)并处理向客户端发送响应。