我的应用程序不需要响应http请求,除了将它们重定向到https,但我没有为此配置它。我在Guincorn后面的Django背后是Google Cloud 4级负载均衡器(通过kubernetes设置)。我没有使用nginx,因为静态文件是通过谷歌云存储桶提供的,所以它似乎增加了不必要的复杂性(这是错误的原因吗?)
当我为https配置guincorn时,它不响应http请求(ok)。我的第一个想法是通过负载均衡器转发端口80和443,然后让django / guincorn负责重定向,但是我不能同时使用guincorn来同时提供http和https,即使我试图暴露两个端口:
git add frontend/www/site-resources/product/media/
负载均衡器配置为:
gunicorn --threads 2 -b :8000 --keyfile=key.txt --certfile=cert.txt myapp.wsgi
有可能改变这一点,以便gunicorn也会回答https请求吗? (Django配置设置为不重定向http请求) 或者我完全错了?我应该尝试在负载均衡器本身执行重定向吗?
答案 0 :(得分:0)
来自kubernetes的建议是使用一个入口控制器(在这种情况下)一个nginx将http重定向到https。
这是做什么的: - 如果未正确设置,nginx会查看http_forwarded_for并重定向到https。 - 入口实际上将为您终止https,以便您的应用程序不必执行此操作。
请查看https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx以获取详细示例。