小编use*_*480的帖子

Dockerize pgAdmin - CSRF 令牌不匹配

我一直在尝试解决一个问题,即当我尝试登录 Nginx 代理后面的 pgAdmin(在 docker 容器中)时,出现 CSRF 令牌不匹配的错误。

请参阅https://en.wikipedia.org/wiki/Cross-site_request_forgery

坦率地说,问题是否与 nginx 相关,我不确定,但配置文件如下:

Docker Swarm 服务

pgAdmin:
 image: dpage/pgadmin4
 networks:
   - my-network
 ports:
   - 9102:80
 environment:
   - PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
   - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
   - PGADMIN_CONFIG_SERVER_MODE=True
 volumes:
   - /home/docker-container/pgadmin/persist-data:/var/lib/pgadmin
   - /home/docker-container/pgadmin/persist-data/servers.json:/pgadmin4/servers.json
 deploy:
  placement:
    constraints: [node.hostname == my-host-name]
Run Code Online (Sandbox Code Playgroud)

Nginx 配置

server {

    listen 443 ssl;
    server_name my-server-name;

    location / {

            proxy_pass http://pgAdmin/;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-CSRF-Token $http_x_pga_csrftoken;
    }

    ssl_certificate /home/nginx/ssl/certificate.crt;
    ssl_certificate_key /home/nginx/ssl/private.key;
    ssl_session_cache  builtin:1000 …
Run Code Online (Sandbox Code Playgroud)

nginx pgadmin docker csrf-token

7
推荐指数
1
解决办法
9026
查看次数

标签 统计

csrf-token ×1

docker ×1

nginx ×1

pgadmin ×1