请问docker部署superset后,直接127.0.0.1可以访问登录,但是换成ip后,可以进到页面 但是无法登录(提示:wtforms.validators.ValidationError: The CSRF session token is missing.),是为什么
这个问题可能是由于您的服务器安全组没有放开端口,或者Superset容器的监听地址没有设置为0.0.0.0。当您使用127.0.0.1访问时,它只表示本机本容器中的一个虚拟网卡,只接受本容器中的应用相互通讯。因此,当您尝试从外部IP访问时,可能会出现无法登录的问题。
为了解决这个问题,您可以尝试以下步骤:
superset run --host 0.0.0.0
,这样在外网访问IP:5000时,可以正常打开登录页面。Superset(仅对存量用户开放)https://help.aliyun.com/zh/emr/emr-on-ecs/user-guide/superset?spm=a2c4g.2590615.0.i10
前提条件
已创建E-MapReduce(简称EMR)的Hadoop或Druid集群,并选择了Superset服务,详情请参见创建集群。
使用限制
Superset默认安装在emr-header-1节点,暂不支持HA。
Superset不支持通过KNOX访问Web UI。
在使用Superset前,确保您的主机能够正常访问emr-header-1,详情请参见通过SSH隧道方式访问开源组件Web UI。
使用Superset访问Druid
登录Superset。
您需要在SSH连接中创建隧道以查看开源组件的Web页面,详情请参见通过SSH隧道方式访问开源组件Web UI。
默认用户名和密码均为admin,请您登录后及时修改密码。
在Docker中部署Superset时遇到CSRF令牌丢失的问题,这通常是由于跨站点请求伪造(CSRF)保护机制导致的。当您尝试从一个IP地址而不是本地主机访问Superset时,可能会触发这个保护机制。
要解决这个问题,您可以考虑以下几种方法:
修改配置:
superset/config.py
文件。WTF_CSRF_ENABLED
变量,将其设置为False
以禁用CSRF保护。更新白名单:
superset/config.py
中找到CSRF_EXEMPT_LIST
变量。CSRF_EXEMPT_LIST = ['your.ip.address.here']
使用反向代理:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
这样的行来传递客户端IP。检查会话存储:
superset/config.py
中查找SESSION_COOKIE_SAMESITE
和SESSION_PROTECTION
选项,并根据您的需求调整它们。清理浏览器缓存/cookies:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。