gpt4 book ai didi

python - 在 linux 上将 web.py 作为服务运行

转载 作者:行者123 更新时间:2023-12-04 19:38:25 25 4
gpt4 key购买 nike

我使用 web.py 创建了一个以 json 格式返回结果的 Web 服务。

我在本地机器上以 python scriptname.py 8888 运行它

但是,我现在想在 linux 机器上运行它。

如何在 linux 机器上将其作为服务运行?

更新

在回答之后,似乎问题不正确。我知道部署过程、框架和网络服务器。也许以下背景故事会有所帮助:

我有一个小的 python 脚本,它将一个文件作为输入,并基于一些逻辑将该文件拆分。我想将此脚本与我已经拥有的 Web 前端(Grails)一起使用。我想从 grails 应用程序中调用它,但不想通过执行命令行来调用它。因此,我将 python 脚本包装为 Web 服务。它接受两个参数并以 json 格式返回拆分文件的数量。这个 web 服务只会被我的 grails 前端使用,没有别的。

所以,我只是希望运行这个小的 web.py 服务,以便它可以响应我的 grails 前端。

如果我错了,请纠正我,但是在上面之后我还需要 ngix 之类的吗?这个脚本听起来微不足道,但最终我会为它添加更多逻辑,所以我希望它作为一个 Web 服务,可以被 Web 前端使用。

最佳答案

一般来说,这有两个部分。

“远程和基于事件”部分:通过网络远程使用的服务需要一定的技能:能够接受(多个)连接,读取请求,处理,回复,至少会说基本的 TCP/HTTP,处理死连接,如果它不仅仅是小型私有(private) LAN,它还需要强大(想想 DoS),并且可能还执行某种身份验证。

如果您的脚本愿意处理所有这些,那么它就可以打开自己的端口并进行监听了。我不确定 web.py 是否提供所有这些功能。

然后是另一部分,“守护进程”,当你想在无人值守的情况下运行服务器时:在启动时运行,在正确的用户下运行,不阻止你的父级(ssh,init 脚本或其他),没有打开 ttys 但可能在某处登录...

像 nginx 和 Apache 这样的服务器就是为此而构建的,并提供像 mod_python 或 WSGI 这样的接口(interface),因此更简单的应用程序可以尽可能多地放弃上述内容。

所以答案是:是的,你仍然需要 Nginx 或类似的东西,除非:

  • 你可以自己用 Python 实现,
  • 或者您仅在 localhost 上使用脚本并且愿意采取一些
    不稳定的风险。

  • 然后可能你可以自己做。

    关于python - 在 linux 上将 web.py 作为服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19256594/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com