【问题标题】:Flask SERVER_NAME setting best praticesFlask SERVER_NAME 设置最佳实践
【发布时间】:2018-10-04 17:32:33
【问题描述】:

Flask 有SERVER_NAME 的设置,这在大多数时候都很方便。由于我的应用程序有后台任务,我使用 Flask 上下文。要使上下文正常工作,应设置 SERVER_NAME

当设置SERVER_NAME 时,检查传入请求以匹配此值,否则找不到路由。当在前面放置一个 nginx(或其他网络服务器)时,SERVER_NAME 还应该包含端口,反向代理应该处理重写的东西,对外界隐藏端口号(它确实如此)。会话 cookie 工作现代浏览器代理传递的url名称应该与SERVER_NAME相同,否则浏览器拒绝发送cookie。这可以通过在/etc/hosts中添加官方hostname并将其指向127.0.0.1来解决。

有一件事我还没有弄清楚,那就是后台任务中的 url。 url_for 与 _external 选项一起使用以在它发送的邮件中生成 url。但是该 url 包含端口,这当然不同于我的 nginx 正在运行的 443 端口...

SERVER_NAME 中删除端口,会使第一段中描述的内容失败。

那么处理邮件中的url_for 的最佳选择是什么?创建一个单独的配置设置?创建我自己的url_for

【问题讨论】:

    标签: python email flask nginx-reverse-proxy celery-task


    【解决方案1】:

    你应该把 url_for(location, _external=True) 或者如果您使用 nginx,则放入 include proxy_params。

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 2011-04-26
      • 2011-12-08
      • 2012-06-26
      • 2015-04-07
      • 2014-10-01
      相关资源
      最近更新 更多