Flask SERVER_NAME设置了最佳实践

Chr*_*ens 10 email flask celery-task nginx-reverse-proxy

Flask有这个设置SERVER_NAME,大部分时间都很方便.由于我的应用程序有后台任务,我使用Flask上下文.要使上下文工作,SERVER_NAME应该设置.

SERVER_NAME设置传入的请求进行检查,以匹配该值或路径没有找到.当放置一个nginx(或其他网络服务器在前面时,SERVER_NAME还应该包括端口和反向代理应该处理重写的东西,隐藏端口号从外部世界(它做).对于会话cookie在现代浏览器中工作代理通网址的名称应该是一样的SERVER_NAME,否则浏览器拒绝发送的cookie.这可以通过增加官方来解决hostname/etc/hosts,它指向127.0.0.1.

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

从中移除端口SERVER_NAME会使第一段中描述的内容失败.

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

Fre*_*ode 0

如果您使用 nginx,则应该使用url_for(location, _external=True) 或包含。proxy_params