Google OAuth2 OmniAuth提供程序回调无法与反向代理后面的GitLab一起使用

时间:2015-09-26 18:42:26

标签: nginx google-oauth omniauth gitlab reverse-proxy

我已在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实例,所以我希望这种反向代理方法能够工作。

1 个答案:

答案 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提供正确的回调网址。