【问题标题】:Running Django Python Server in AWS在 AWS 中运行 Django Python 服务器
【发布时间】:2017-07-18 09:09:58
【问题描述】:

我有一个在 AWS Ubuntu 机器上运行的 django。通过 SSH,我在 8000 端口启动服务器。但是当我关闭 ssh 窗口时,服务器停止并且我无法通过 URL 访问它。我想要的是在服务器启动后一直运行它。怎么办?谢谢。

【问题讨论】:

标签: django python-3.x amazon-web-services


【解决方案1】:

您可以使用 Apache 或 Nginx 来部署 Django App。如果您打算使用 Nginx,请先在服务器中安装 Nginx,并将 Django 配置添加到 Nginx 配置中。您可以将其作为good guide 关注。

【讨论】:

    【解决方案2】:

    你可以用 hacky 方式来做:创建一个执行应用程序的 bash 脚本(只需运行你执行的相同命令来运行它),然后使用 nohup 运行 bash 脚本,它将进程与 shell 分离并允许关闭会话时要继续运行的应用程序:

    nohup ./my_bash_script.sh &
    

    如果您想正确执行此操作,请创建一个服务文件并将应用程序作为服务执行。您可以像这样创建一个简单的服务文件:

    [Unit]
    Description=My Django app
    After=network.target
    
    [Service]
    PIDFile=/run/DjangoApp/pid
    User=<your user>
    Group=<your group>
    WorkingDirectory=<working directory of your Django app>
    ExecStart=<path to your bash script>
    PrivateTmp=True
    
    [Install]
    WantedBy=multi-user.target
    

    将文件保存在/etc/systemd/system/djangoService.service 下。您可以使用以下命令启用服务:

    sudo systemctl enable djangoService
    

    并使用以下命令运行它:

    sudo service start djangoService
    

    这将使服务保持运行。但是请记住,要为适当的 Django 应用程序提供服务,您可能需要使用 Gunicorn/wsgi 来提供响应,使用 Nginx 来反向代理请求。

    【讨论】:

      【解决方案3】:

      在开发模式下,Django 有一个开发服务器,足以用于测试目的。一旦你完成了一个 Web 应用程序并准备好投入生产,在服务器上设置应用程序的过程可能会让某些人不知所措,特别是如果你是第一次这样做。本文提供了有关如何使用 mod_wsgi 部署基于 Django 的 Web 应用程序的分步指南。

      您可以按照这篇文章来使用 Apache 服务器设置 mod_wsgi。 enter link description here

      如果您只设置用于开发,那么您需要以守护程序模式运行服务器。

      在 Ubuntu 上

      run:>./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 &
      
      >exit
      

      【讨论】:

        【解决方案4】:

        Django runserver permanent 希望这会有所帮助,这是创建屏幕的最佳方式,因此我们可以监控正在发生的事情并收回控制权。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-13
          • 2011-07-27
          • 2016-05-16
          • 2023-02-13
          • 1970-01-01
          相关资源
          最近更新 更多