我正在使用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;
}
}
答案 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