【发布时间】:2019-08-14 13:21:41
【问题描述】:
我开发了一个应用程序,我想将它部署在服务器上。对于后端,我使用 Django 和前端 React。 React 和 Django 之间的通信是通过 rest api 进行的。我还有一个 Arduino,它通过休息与 Django 通信。我在服务器上使用 nginx。如何部署此应用程序的最佳方式是什么?非常感谢
【问题讨论】:
标签: django reactjs nginx deployment
我开发了一个应用程序,我想将它部署在服务器上。对于后端,我使用 Django 和前端 React。 React 和 Django 之间的通信是通过 rest api 进行的。我还有一个 Arduino,它通过休息与 Django 通信。我在服务器上使用 nginx。如何部署此应用程序的最佳方式是什么?非常感谢
【问题讨论】:
标签: django reactjs nginx deployment
您需要一台服务器,租用服务器的流行选择是 AWS 或 Heroku。两者都有免费的有限试用版和向您解释如何部署项目的教程。 Heroku 应该更易于使用,而 AWS 提供了更多功能。链接:
-AWS Elastic Beanstalk:https://aws.amazon.com/it/elasticbeanstalk/
-Heroku:https://www.heroku.com
【讨论】:
我所做的是使用我的 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 文件,其中包含以下关键行:WSGIDaemonProcess 和 WSGIScriptAlias,它们指向您的虚拟环境和 wsgi.py 文件。确保也启用此功能('a2ensite`)。
5) 您项目的 wsgi.py 文件将指向您应用的设置。
6) 重启 apache 和 nginx。
那是真正的粗略大纲,并且有编写的教程。只需搜索“django uwsgi nginx”,这将使您的 django 应用程序运行,并为您的反应应用程序调用适当的端点。
【讨论】: