我用Flask在Python中编写了一个服务器应用程序,现在我想在我设置的虚拟机上运行它。因此,我非常感谢两个领域的指导。
如何设置服务器以使其永久运行,其他计算机可以访问它?计算机可以位于同一网络中,因此我不必担心域名或其他任何问题。我只是在寻找能够访问它的多个设备。我目前能够在本地机器上运行服务器,一切正常。
我已经远程设置了我的虚拟linux机器,所以我通过SSH进入它并从命令行执行所有操作,但是我对如何从命令行执行上述操作感到有点迷失。
非常感谢任何指导/帮助!我所做的网络搜索没有指出我正确的方向。如果我的任何术语都没有关闭,我会道歉(如果是的话,请随时纠正我,以便我学习!)。谢谢!
答案 0 :(得分:1)
在Ubuntu /etc/systemd/system
上使用systemd进行简单设置(虽然可能不适合生产设置)。
我有时为Python Flask应用程序执行此操作,即我正在进行原型设计。首先,将您的应用程序代码放在/opt/my-app
中。我通常只需要cd /opt
和git clone
个回购。然后,创建一个名为/etc/systemd/system/my-app.service
的文件。在该文件中,添加以下内容:
[Unit]
Description=My App daemon
After=network.target postgresql.service
Wants=postgresql.service
[Service]
EnvironmentFile=/etc/sysconfig/my-app
WorkingDirectory=/opt/my-app/ # <- this is where your app lives
User=root
Group=root
Type=simple
ExecStart=/usr/bin/python server.py # <- this starts your app
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
接下来,将您拥有的所有环境变量粘贴到名为/etc/sysconfig/my-app
的文件中,如:
DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=postgres
然后你可以这样做:
service my-app start
service my-app stop
service my-app restart
然后你可以点击服务器IP和端口上运行的应用程序(就像你运行python app.py
或python server.py
一样。要查看守护进程的日志,如果它没有&#39;似乎工作了,你可以运行:
journalctl -u my-app -e
在制作中,我不确定这是最好的设置,可能更好地研究像ngnix这样的东西。但是我一直都是为原型做这件事而且非常棒。