【问题标题】:Django - how to run it on a production server?Django - 如何在生产服务器上运行它?
【发布时间】:2017-05-18 15:04:34
【问题描述】:

我是 Django 项目的新手。我已将我的应用程序移至生产服务器并运行它:

$ python manage.py runserver
>>> Starting gulp watch
>>> gulp watch gulp process on pid 30427
Validating models...

0 errors found
May 18, 2017 - 15:57:08
Django version 1.5.12, using settings 'website.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

但它是一个有IP的生产服务器,例如:119.237.27.131

所以它不能http://127.0.0.1:8000/运行

那我应该怎么做才能让应用在http://119.237.27.131:8000/ 上运行呢?

有什么想法吗?

顺便说一句,'website.settings'在哪里?

编辑:

当我在http://119.237.27.131:8000/查看应用程序时

我收到此错误:

无法访问此网站

119.237.27.131 拒绝连接。

【问题讨论】:

  • http://127.0.0.1 基本意思是“这台机器”,所以它运行在119.237.27.131
  • @JonasGiuro 但是当我在119.237.27.131:8000 - This site can’t be reached 119.237.27.131 refused to connect. 上查看时,我的浏览器上出现了这个错误。还有什么我错过的吗?
  • 1) Django 1.5 长期不受支持,您应该更新到支持的版本。 2) manage.py runserver 是一个开发服务器,它不应该在生产中使用。使用适当的 WSGI 服务器,例如 Apache/mod_wsgi、Gunicorn 或 uwsgi。见How to deploy with WSGI
  • @knbk 我正在接管这个 django 项目。不是我开发的。而且我对django不太了解。所以我认为最好保持原样。

标签: django python-2.7 django-project-architect


【解决方案1】:

如果不带任何参数启动开发服务器,服务器会从localhost:8000启动,但不能从机器外部访问。为此,您应该像这样启动服务器:

python manage.py runserver 0.0.0.0:8000

这将允许您从另一台机器连接到机器的 IP 地址,例如 http://119.237.27.131:8000/

警告:开发服务器不是生产就绪服务器。您应该使用像 Gunicorn 这样的 WSGI 服务器或其他工具来为您的应用程序提供服务。不要在生产环境中使用开发服务器,这不安全!! Read more about that here.

【讨论】:

  • 感谢您的回答。我已经安装了Gunicorn,但是如何使用它运行应用程序?
  • 如果安装了 Gunicorn,您应该将其指向在项目的 wsgi.py 模块上声明的 application 变量。一个示例调用是:gunicorn wsgi:application -b 127.0.0.1:8000。它与调用 gunicorn wsgi:application 的效果相同。
  • wsgi.py module 在哪里?我需要在那里配置什么吗?
  • your_project_folder/your_project_name/wsgi.py,它与您的 settings.py 模块所在的文件夹相同。据我所知,Django 会生成包含启动应用程序所需的所有内容的文件,我从未修改过它,但有一些开发工具可以修改该过程。
  • 你得到这个是因为你还没有安装 Gunicorn。
猜你喜欢
  • 2021-07-16
  • 2014-05-22
  • 2012-08-03
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2012-05-18
相关资源
最近更新 更多