首页 文章

如何将Ngnix配置为Phabricator的反向代理(Unhandled Exception(“AphrontMalformedRequestException”))

提问于
浏览
1

我正在使用Docker图像的phabricator(https://hub.docker.com/r/hachque/phabricator/) . 因为我的phabricator服务器在公司的局域网中,所以我无法从外部访问它 . 我正在尝试使用Ngnix作为反向代理 . 我可以访问登录页面,但是当我尝试登录时,显示以下消息:

未处理的异常(“AphrontMalformedRequestException”)您正在尝试将一些数据保存到Phabricator,但您的浏览器发出的请求包含不正确的令牌 . 重新加载页面,然后重试 . 您可能需要清除您的cookie . 这是一个Web请求 . 此请求具有无效的CSRF令牌 .

这是我的Nginx反向代理配置的一部分:

# phabricator proxy.
#
server {
    listen       8080;
    server_name  0.0.0.0;

    location / {
    proxy_pass http://193.177.1.238/;
    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;
    }
}

1 回答

  • 1

    我没有使用与你相同的图像,但是我在Docker镜像上安装了带有Nginx和Phabricator源码的PHP 7.1,然后来自docker的Nginx听取了9000端口(在我的情况下) .

    然后我使用 8081:9000 端口映射运行此映像,并在 host 机器的Nginx上运行以下VirtualHost配置:

    upstream api_upstream {
        server 0.0.0.0:8080;
    }
    
    server {
        listen 80;
        server_name phabricator.local.com;
    
        location / {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            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-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
            proxy_pass http://api_upstream;
        }
    }
    

    只有将此条目添加到/ etc / hosts文件时,phabricator.local.com主机才有效:

    127.0.0.1   phabricator.local.com
    

相关问题