记一次gitlab同时保留http和https的配置过程

举报
松哥 发表于 2020/06/11 14:40:35 2020/06/11
【摘要】 随着企业安全等级意识提高的需求越来越强力,给gitlab私有仓库部署ssl证书的需求也越来越多,但是受限于一些git版本不支持https或者某些项目的特殊需求,要求gitlab同时保留http和https。 先说gitlab,我们知道gitlab原生自带nginx模块,gitlab启动的时候这个模块就会启动起来,占用了80端口(gitlab默认以http的方式访问),但是当我们...

    随着企业安全等级意识提高的需求越来越强力,给gitlab私有仓库部署ssl证书的需求也越来越多,但是受限于一些git版本不支持https或者某些项目的特殊需求,要求gitlab同时保留http和https。

    先说gitlab,我们知道gitlab原生自带nginx模块,gitlab启动的时候这个模块就会启动起来,占用了80端口(gitlab默认以http的方式访问),但是当我们修改成https访问的时候gitlab会自动把http的访问请求转到https,这样我们要求gitlab同时支持http和https的需求就无法直接完成,需要做一部分修改。这里有两种思路:

一:外面用nginx再做一层代理。这中实现方式稍显复杂,且两次层nginx转发可能会有冲突。

二:直接使用gitlab的nginx做相关操作,推荐形式:

    1.在华为云官网申请ssl证书,并将下载的nginx证书放入您的指定目录。

    2.修改gitlab配置文件

        sudo vim /etc/gitlab/gitlab.rb

            external_url 'https://ip:port'

            nginx['ssl_certificate'] = "/yourdir/****.pem" 

            nginx['ssl_certificate_key'] = "/yourdir/****.key"

    3.重建配置

         sudo gitlab-ctl reconfigure

      此时,测试域名已开启https访问


    4.拷贝一份新的gitlab的nginx配置文件,并修改http.conf中的端口和绑定server_name

        sudo cp /var/opt/gitlab/nginx/conf/gitlab-http.conf  /var/opt/gitlab/nginx/conf/http.conf

    5.修改/var/opt/gitlab/nginx/conf/nginx.conf文件

        sudo vim /var/opt/gitlab/nginx/conf/nginx.conf

            include /var/opt/gitlab/nginx/http.conf #添加这一行

    6.重启nginx

        sudo gitlab-ctl restart nginx


至此,配置完毕。因gitlab版本问题可能导致某些nginx启动失败,若配置过程遇到问题,可查看/var/log/gitlab/nginx/error.log。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。