如何保持django rest API服务器在AWS上自动运行?

vddsk6oq  于 2023-02-14  发布在  Go
关注(0)|答案(3)|浏览(178)

所以我上传了我的Django API和AWS EC2示例上的Rest框架。但是,我必须手动进入Putty并连接到我的EC2示例,并在我想使用它时通过输入python manage.py runserver 0.0.0.0:8000打开API。
当我关闭我的个人电脑,腻子关闭和API无法访问的ip地址上了。
我如何让我的API永远保持打开状态?将它转换为https有帮助吗?或者可以做些什么?

ibrsph3r

ibrsph3r1#

你可以通过以下方法让它永远活着,

  • 使用ssh连接ec2示例。
  • 然后在该示例上部署后端(django),并在任意端口运行它。
  • 一旦运行在你想要的端口,你可以关闭终端,请不要按ctrl + c,这样你的django服务器不会停止。你可以只跨终端。它现在将运行。

你也可以在tmux上运行django服务器(它的终端在终端里面)。这里是tmux的教程。https://linuxize.com/post/getting-started-with-tmux/
另一种方法是,你可以使用Docker容器来部署django。
我希望你能克服你的问题。
谢谢。

guykilcj

guykilcj2#

好了,我终于解决了这个问题。所以当你关闭putty或者ssh客户端会话时,会话会离线。但是,如果你通过守护进程运行会话,即使你关闭了客户端,会话也会在后台继续。代码是

$ nohup python ./manage.py runserver 0.0.0.0:8000 &

当然你可以使用tmux或者docker,就像madi建议的那样,但是我认为运行这一段代码要简单得多。

fnvucqvd

fnvucqvd3#

您可以使用pm2。
请安装pm2。
在django应用的根目录下创建一个server.json文件来运行应用。

{       
  apps:            
     [{
       name: "appname",          
       script: "manage.py",
       args: ["runserver", "0.0.0.0:8888"],
       exec_mode: "fork", 
       instances: "1", 
       wait_ready: true, 
       autorestart: false, 
       max_restarts: 5, 
       interpreter : "python3" 
     }] 
}

然后您可以使用pm2 start server.json运行此应用。
你的应用将在端口8888上运行。

相关问题