Nginx配置反向代理訪問 Gitlab

簡介

gitlab 做爲當前企業版本控制的有力工具,很是流行,官方提供了很是方便的安裝配置方式,能讓咱們快速的搭建一個便捷的代碼版本控制系統。
可是由於 gitlab 自己內置了 nginx,當咱們的 gitlab 服務要和其餘 web服務共存,就須要作一點簡單的改變,以適應這種狀況
第一個辦法是禁用 gitlab 自帶的 nginx,使用咱們本身安裝的 nginx,這種方法我不喜歡。
第二種辦法就是 配置代理服務器,繼續使用 gitlab 的內置 nginxhtml

修改 gitlab 配置(官方安裝方式下,配置文件是/etc/gitlab/gitlab.rb

  • gitlab nginx 端口監聽修改
    nginx['listen_port'] = 端口號nginx

  • gitlab 的域名
    external_url '域名'git

修改完上述參數 執行命令 gitlab-ctrl reconfigureweb

添加 nginx 代理服務器配置

upstream  git{
    # 域名對應 gitlab配置中的 external_url
    # 端口對應 gitlab 配置中的 nginx['listen_port']
    server  域名:端口;
}


server{
    listen 80;
    # 此域名是提供給最終用戶的訪問地址
    server_name 域名;

    location / {
        # 這個大小的設置很是重要,若是 git 版本庫裏面有大文件,設置的過小,文件push 會失敗,根據狀況調整
        client_max_body_size 50m;

        proxy_redirect off;
        #如下確保 gitlab中項目的 url 是域名而不是 http://git,不可缺乏
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到 gitlab 內置的 nginx
        proxy_pass http://git;
        index index.html index.htm;
    }
}
相關文章
相關標籤/搜索