在http和https上运行Gunicorn

时间:2016-02-23 13:34:51

标签: django apache2 gunicorn http-redirect

当我启动Gunicorn服务时,我目前使用此命令启动它:

gunicorn --certfile=/Projects/thebodyofchrist.us.crt --keyfile=/Projects/thebodyofchrist.us.key bodyofchrist.wsgi -b 0.0.0.0:443 -b 0.0.0.0:80 -w 10

将gunicorn绑定到http和https - 或设置apache2以侦听http并使用现有参数将请求重定向到https。 我有http://example.com/sample/request的数百个链接 并需要它自动转到https://example.com/sample/request

gunicorn正在主持django。

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

Gunicorn是一个非常可靠的项目,我希望他们有一天能够使用多个端口绑定和命令行开关来构建它,以指示SSL优先级。

当您最终投入生产时,您将希望使用Apache或Nginx的卓越负载平衡。

但是没有什么能阻止你(在开发期间)运行绑定到端口80的一些工作程序,并且一些工作程序使用密钥文件和certfile集绑定到端口443。然后,您可以将登录链接写为"绝对"网址,例如HREF =" https://开头yoursite /登录"登录后,他们将使用https网址。

#!/bin/sh
# put 8 workers as Daemon listening for HTTPS on 443
gunicorn -D -w 8 --certfile=/Projects/thebodyofchrist.us.crt --keyfile=/Projects/thebodyofchrist.us.key bodyofchrist.wsgi -b 0.0.0.0:443

# put 2 workers as Daemon listening for HTTP on port 80
gunicorn -D -w 2 bodyofchrist.wsgi -b 0.0.0.0:80

答案 1 :(得分:1)

可以绑定多个地址。例如:

gunicorn -b 127.0.0.1:8000 -b [::1]:8000 test:app

https://docs.gunicorn.org/en/stable/settings.html?highlight=bind#server-socket

所以你可以这样做

gunicorn -b :80 -b :443 test:app

答案 2 :(得分:0)

  

这种支持可以添加到gunicorn中。当下这是不可能的。

https://github.com/benoitc/gunicorn/issues/1466