【问题标题】:React and Django deploymentReact 和 Django 部署
【发布时间】:2019-08-14 13:21:41
【问题描述】:

我开发了一个应用程序,我想将它部署在服务器上。对于后端,我使用 Django 和前端 React。 React 和 Django 之间的通信是通过 rest api 进行的。我还有一个 Arduino,它通过休息与 Django 通信。我在服务器上使用 nginx。如何部署此应用程序的最佳方式是什么?非常感谢

【问题讨论】:

    标签: django reactjs nginx deployment


    【解决方案1】:

    您需要一台服务器,租用服务器的流行选择是 AWS 或 Heroku。两者都有免费的有限试用版和向您解释如何部署项目的教程。 Heroku 应该更易于使用,而 AWS 提供了更多功能。链接:

    -AWS Elastic Beanstalk:https://aws.amazon.com/it/elasticbeanstalk/

    -Heroku:https://www.heroku.com

    【讨论】:

    • 我已经有一个带有 Debian 的 VPS,我在其中使用 Nginx 托管一些网站。我想在上面托管应用程序。
    【解决方案2】:

    构建和编排工具有很多可用的替代方案。 例如Ansible 有许多用于 django、nginx、npm、数据库的模块...允许执行任何您想要的任何操作和命令。只需在您的存储库设置中配置一些 webhooks,这样您就可以通过推送新更改来触发自动部署,或者在需要时手动运行它。

    【讨论】:

      【解决方案3】:

      我所做的是使用我的 VPS 来托管 Django 应用程序,然后使用 graphql(类似于 REST)从 React 与 Django 进行通信。

      一般步骤是:

      1) 在 VPS 服务器上,您将拥有一个包含 Django 应用程序的代码目录,就像在您的本地计算机上一样。只需使用 git 即可。

      2) 在 VPS 服务器上创建一个 virtualenv,在您的代码目录中包含所有需要的 django/python 模块(通过 pip 添加)

      3) 创建一个 nginx 配置文件。我使用 nginx 将 proxy_pass 传递给调用 python 应用程序的 apache。我的 nginx 在端口 80 上侦听,并且有这样一行:proxy_pass http://admin.mysite.com:81;。在 /etc/nginx/sites-enabled/ 中创建指向此配置的链接并重新启动 nginx。

      4) 使用 <VirtualHost *:81> 创建一个 apache conf 文件,其中包含以下关键行:WSGIDaemonProcessWSGIScriptAlias,它们指向您的虚拟环境和 wsgi.py 文件。确保也启用此功能('a2ensite`)。

      5) 您项目的 wsgi.py 文件将指向您应用的设置。

      6) 重启 apache 和 nginx。

      那是真正的粗略大纲,并且有编写的教程。只需搜索“django uwsgi nginx”,这将使您的 django 应用程序运行,并为您的反应应用程序调用适当的端点。

      【讨论】:

        猜你喜欢
        • 2020-05-20
        • 2017-05-06
        • 1970-01-01
        • 2023-03-04
        • 2018-09-16
        • 2020-04-21
        • 2019-04-30
        • 2016-07-16
        • 1970-01-01
        相关资源
        最近更新 更多