### 重现步骤
1. 使用任何用户登录
2. 尝试退出
3. 发生错误
### 预期的行为
用户应该注销。
Nextcloud报错:"Access forbidden CSRF check failed"
Nextcloud配置Nginx跨区解决方案
### 实际行为
用户单击注销,并提错误:
"Access forbidden
CSRF check failed"
### 解决方案(配置nginx)
1. 第一部分,是要在全局配置(默认路径/etc/nginx/nginx.conf)的http中利用map进行映射;
# 首先配置nginx.conf添加http map
vi /etc/nginx/nginx.conf
# 在http内增加如下内容后保存
map $http_upgrade $connection_upgrade {
default upgrade; '' close;
}
2. 第二部分,则是在对应的nextcloud配置文件(自己创建/etc/nginx/conf.d/nextcloud.conf)中的server下配置IP传递。
# 配置nextcloud.conf反代配置文件,增加如下
vi /etc/nginx/conf.d/nextcloud.conf
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
配置完成后运行nginx -t进行检查,确认没有错误后运行nginx -s reload或systemctl restart nginx重启nginx进行配置生效。
3.完成之后再次访问Nextcloud可能出现:反向代理的域名不在nextcloud的trusted_domains中你的来访域名不在nextcloud的信任域名中
# 修改 $nextcloud/config/config.php中的trusted_domains参数即可