Flask的设置为SERVER_NAME
,大部分时间都很方便。由于我的应用程序有后台任务,我使用Flask上下文。要使上下文起作用,应设置SERVER_NAME
。
设置SERVER_NAME
时,将检查传入请求以匹配此值,或者找不到路由。当放置一个nginx(或其他网络服务器在前面时,SERVER_NAME
也应包括端口,反向代理应该处理重写内容,隐藏外部世界的端口号(它做的)。对于会话cookie到在现代浏览器中,代理传递URL名称应与SERVER_NAME
相同,否则浏览器拒绝发送cookie。这可以通过在hostname
中添加官方/etc/hosts
来解决。将其指向127.0.0.1
。
有一件事我还没弄清楚,它是后台任务中的网址。 url_for与_external选项一起使用,以在其发出的邮件中生成URL。但是该URL包含端口,这当然不同于我的nginx正在运行的443
端口...
从SERVER_NAME
删除端口,使第一段中描述的内容失败。
那么处理邮件中url_for
的最佳选择是什么?创建单独的配置设置?创建我自己的url_for
?
答案 0 :(得分:0)
您应该输入url_for(location,_external = True) 或者,如果使用nginx,则包含include proxy_params。