我已在VM上安装了GitLab 8.0.2,并且我设置了nginx反向代理,以将HTTP流量定向到VM。我能够查看GitLab的主登录页面,但是当我尝试使用Google OAuth2方法登录时,回调无法在输入正确的凭据后登录。我只是被引导回GitLab登录页面。
问题可能在哪里?反向代理设置? GitLab设置(即Google OAuth配置)?
以下是我的nginx conf:
upstream gitlab {
server 192.168.122.134:80;
}
server {
listen 80;
server_name myserver.com;
access_log /var/log/nginx/gitlab.access.log;
error_log /var/log/nginx/gitlab.error.log;
root /dev/null;
## send request back to gitlab ##
location / {
proxy_pass http://gitlab;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $http_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;
}
}
有趣的是,旧设置我使用iptables将主机上的端口81重定向到GitLab VM上的端口80,在这种情况下,Google OAuth回调有效。我宁愿让人们只使用标准端口80来访问我的GitLab实例,所以我希望这种反向代理方法能够工作。
答案 0 :(得分:0)
GitLab 8.x有很多新东西。虽然我没有看到您的nginx.conf
文件有任何特别的错误,但与GitLab存储库中的示例相比,它非常短。查看https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/gitlab-ssl以了解您应该考虑添加的配置。
更新nginx.conf
文件后,请仔细阅读GitLab OmniAuth documentation以及'提供商'下的Google OAuth2集成文档。在OmniAuth页面上。请确保在注册时向Google提供正确的回调网址。