加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx作为GitLab与SSL的反向代理?

发布时间:2020-12-13 21:14:39 所属栏目:Nginx 来源:网络整理
导读:我有GitLab的nginx设置,可以在127.0.0.1:8088收听.然后我有一个系统nginx(通过Ubuntu上的apt-get安装)设置为HTTPS的反向代理: upstream gitlab { server localhost:8088 fail_timeout=0;}server { listen 80; server_name gitlab.myhost.com; return 301 ht

我有GitLab的nginx设置,可以在127.0.0.1:8088收听.然后我有一个系统nginx(通过Ubuntu上的apt-get安装)设置为HTTPS的反向代理:

upstream gitlab {
    server                    localhost:8088 fail_timeout=0;
}

server {
    listen          80;
    server_name     gitlab.myhost.com;
    return          301 https://$server_name$request_uri;
}

# let gitlab deal with the redirection
server {
    listen                      443 ssl;
    server_name                 gitlab.myhost.com;

    ssl_certificate             /srv/www/gitlab.myhost.com.unified.crt;
    ssl_certificate_key         /srv/www/gitlab.myhost.com.key;

    location / {
        proxy_read_timeout      300;
        proxy_connect_timeout   300;
        proxy_redirect          off;

        proxy_set_header        X-Forwarded-Proto $scheme;
        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-Frame-Options   SAMEORIGIN;

        proxy_pass              http://gitlab;
    }
}

这工作正常,基本上所有请求都转发到HTTPS.但是,因为GitLab仍然认为它在HTTP中运行,页面上有一些图形资源,而Gravatar正在使用HTTP方案.我该如何解决这个问题?

当然我知道我可以配置gitlab.rb来使用HTTPS URL.但是,当这样做时,GitLab将开始要求证书来设置自己的nginx.我真的只需要自己的nginx在本地环回的HTTP中运行.

最佳答案
我知道这是一个老问题,但是,

nano /etc/gitlab/gitlab.rb

set external_url="https://whatever"

然后在nginx区域找到正确的方向.

inside the nginx['proxy_set_headers'] = { directive add
"X-Forwarded-Ssl" => "on",

这将假设您的SSL是在代理上进一步构建的.并且url将所有http重写为https

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读