我在配置为反向代理的NGINX后面实现了一个Django网站,当它退出调试模式时,它也为Django提供静态服务,所有这些都在docker-compose应用中。
通过阅读Django文档,我知道他们不建议在生产环境中使用集成Web服务器(目前还不行),将其放在反向代理后面是可以避免安全问题的,或者相同直接暴露出来?
如果这不是可接受的解决方案,那么您能建议任何不使用Django集成Web服务器的实现吗?
请考虑以下容器结构:
只有代理容器暴露于外部世界。
谢谢。
答案 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。
我希望这个问题也能对其他人有所帮助。