如何将Ngnix配置为Phabricator的反向代理(未处理的异常(" AphrontMalformedRequestException"))

时间:2017-02-04 15:11:43

标签: nginx proxy phabricator

我正在使用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 个答案:

答案 0 :(得分:1)

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

然后我使用8081:9000端口映射运行此映像,以及来自主机计算机的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