在代理后面使用Django集成Web服务器是否是一种好习惯?

时间:2019-02-02 20:25:54

标签: django docker security docker-compose

我在配置为反向代理的NGINX后面实现了一个Django网站,当它退出调试模式时,它也为Django提供静态服务,所有这些都在docker-compose应用中。

通过阅读Django文档,我知道他们不建议在生产环境中使用集成Web服务器(目前还不行),将其放在反向代理后面是可以避免安全问题的,或者相同直接暴露出来?

如果这不是可接受的解决方案,那么您能建议任何不使用Django集成Web服务器的实现吗?

请考虑以下容器结构:

enter image description here

  • 代理是NGINX的官方形象
  • www1和www2是按照here.
  • 所述安装了Django的Python3官方映像。
  • 数据库是Postgres官方图像。

只有代理容器暴露于外部世界。

谢谢。

1 个答案:

答案 0 :(得分:0)

我得到了答案,我将使用gunicorn代替集成的Django网络浏览器。

我曾经使用过here文档,该文档描述了如何在同一主机上配置gunicorn和nginx,但是使用http而不是linux socket,而是运行Django集成Web服务器的命令,我只需要像运行gunicorn这个:

gunicorn --workers=4 --bind=0.0.0.0:9000 --access-logfile - --error-logfile - --log-level debug myapp.wsgi:application

使用前面的命令,我还获得了由容器管理的日志。

当然,我还会在需求文件中添加gunicorn。

我希望这个问题也能对其他人有所帮助。