Gitlab-安装配置管理-13外部Nginx反向代理Gitlab内部nginx

 由于Gitlab在安装的时候内部集成了Nginx,尝试干掉内部的Nginx,采用外部的Nginx代理Gitlab的socket,具体操作见博文:https://blog.csdn.net/cen50958/article/details/93239200 在一切都配置完成后,界面操作都一切正常,但是克隆代码的时候服务却返回500错误。但是公司的安装服务器上面已经有了外部的Nginx已经使用了80和443端口,就将Gitlab自带的Nginx做了后端服务,采用外部Nginx反向代理的思路来解决问题。

Gitlab-基础安装
  • 参考安装博文:Gitlab-安装配置管理,安装步骤到:Gitlab相关配置 之前即可
安装Gitlab
  • 修改/etc/gitlab/gitlab.rb配置参数
    修改仓库的url,此处的url不需要带上端口,因为是通过外部Nginx反向代理到指定的端口,配置的域名与外部访问的域名一致

    external_url 'http://gitlab.silly.com'
    

    Gitlab-安装配置管理-13外部Nginx反向代理Gitlab内部nginx_第1张图片

  • 修改Gitlab内部Nginx端口:8888

    nginx['listen_port'] = 8888
    

    在这里插入图片描述
    Gitlab中的内部Nginx不需要配置Https的相关证书信息,由外部的Nginx配置成Https

  • 重新加载配置

    gitlab-ctl reconfigure
    
  • 完成页面访问

http://gitlab.silly.com:8888/
可正常访问则gitlab安装完成
Gitlab-安装配置管理-13外部Nginx反向代理Gitlab内部nginx_第2张图片

配置外部Nginx方向代理
  • Nginx配置Https可参考博文:https://blog.csdn.net/cen50958/article/details/93320699

  • 配置信息

    upstream  git{
    	server  127.0.0.1:8888;
    }
    
    server {
        listen 443 ssl;
        server_name gitlab.silly.com;
        ssl_certificate                                 /application/nginx/conf/cert/gitlab.silly.com.crt;
        ssl_certificate_key                             /application/nginx/conf/cert/gitlab.silly.com.key;
        #ssl_dhparam                            /application/nginx/conf/cert/gitlab.silly.com.pem;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
    
        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;
    	}   
    }
    
    server{
    	listen 80;
    	# 此域名是提供给最终用户的访问地址
    	server_name gitlab.silly.com;
    
    	rewrite ^(.*)$ https://$host$1 permanent;
    
    	location / {
            return 301 https://gitlab.silly.com:443$request_uri;
     }
    }
    

    检查配置文件完成后,重新外部Nginx即可

  • 界面展示
    Gitlab-安装配置管理-13外部Nginx反向代理Gitlab内部nginx_第3张图片

  • 由于外部Nginx配置的是Https服务,但是Gitlab配置的Http,所有在项目会出现以下提示信息:
    Gitlab-安装配置管理-13外部Nginx反向代理Gitlab内部nginx_第4张图片
    克隆提供的url地址也是Http
    Gitlab-安装配置管理-13外部Nginx反向代理Gitlab内部nginx_第5张图片
    http://gitlab.silly.com/root/demo1.git 也可使用https://gitlab.silly.com/root/demo1.git 来克隆

你可能感兴趣的:(自动化部署)