django - 在 http 和 https 上运行 Gunicorn

标签 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绑定(bind)到http和https——或者设置apache2来监听http并使用现有参数将请求重定向到https。 我有数百个指向 http://example.com/sample/request 的链接 并需要它自动转到 https://example.com/sample/request

gunicorn 正在托管 django。

感谢您的帮助!

最佳答案

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

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

但是没有什么可以阻止您(在开发期间)运行一些绑定(bind)到端口 80 的工作程序和一些绑定(bind)到端口 443 并设置了 key 文件和证书文件的工作程序。然后,您可以将登录链接编写为“绝对”网址,例如href="https://yoursite/login"登录后,他们将使用 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

关于django - 在 http 和 https 上运行 Gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35578989/

相关文章:

tomcat - 如何使用mod_jk 配置apache2 和Tomcat8?

python - 在 ec2 实例的不同子域上运行多个 Flask 应用程序

python - Gunicorn 使用 docker-compose 优雅地停止

python - 使用 Flask、gunicorn、docker 和 azure 处理请求时出现套接字错误

python - Django 模板中的外键关系

django - 向 ModelForm 添加 label_suffix

python - Ubuntu 上的 Azure CLI 权限被拒绝错误

heroku - 部署heroku应用程序时出现ImportError : No module named mysite. wsgi消息

python - 如何从每个页面访问 django-cms 中的所有页面对象?

django - mod_wsgi apache2 加载失败