在端口80上使用runserver运行没有Apache的Django,并且可以在LAN外部访问



在调试模式下,我可以运行django web,可以通过公共(局域网内)访问:

python manage.py runserver 0.0.0.0:8000

所以,是否有可能直接在端口80上运行它(也许有一个域),就像通常的web服务器一样?如果是,这是个坏主意吗?我的意思是,使用apache与mod_wsgi更好吗?

这是可能的,但这是一个非常糟糕的主意,因为django附带的默认服务器不支持多处理等,并且仅用于开发。

如文档所述:

现在应该注意:不要在任何类似于生产环境的环境中使用此服务器。它仅用于开发过程中使用。(我们的业务是制作Web框架,而不是Web服务器。)

关于web服务器的选择,请参阅django的相关书籍,了解如何选择web服务器。

这是可能的。你可以这样做:

python manage.py runserver yourdomain.com:80

这是不是一个坏主意,这可能取决于您的用例。一般来说,我建议在长期运行的生产环境中使用apache或nginx。

如果您需要更容易地调试问题,特别是在使用与部署相似的环境时,但仍然在端口80上运行,然后假设系统Apache关闭,因此当时不使用端口80,那么请查看mod_wsgi-express。

  • https://pypi.python.org/pypi/mod_wsgi

有关更好地将mod_wsgi-express与Django集成并使用它进行调试的信息,请参阅:

  • http://blog.dscpl.com.au/2015/04/introducing-modwsgi-express.html
  • http://blog.dscpl.com.au/2015/04/using-modwsgi-express-with-django.html
  • http://blog.dscpl.com.au/2015/04/integrating-modwsgi-express-as-django.html
  • http://blog.dscpl.com.au/2015/05/using-modwsgi-express-as-development.html

听起来像是两个问题。

  1. 可能吗? (见@geckon的回答)。
  2. 它是明智的在生产中运行一个调试友好的轻量级开发服务器?: No

但是幸运的是,有很多关于使用mod_wsgi运行Apache的官方文档,所以这应该不会太难。

最新更新