linux环境下nginx反向代理gitlab社区版

在企业开发中我们有时会需要搭建自己的gitlab服务器,而通常我们的服务器同时是web服务器,使用了nginx作为静态服务器来进行反向代理,这种情况下,在服务器上安装gitlab-ce版后,由于gitlab-ce自带nginx,而且自带的nginx会把80端口占用,导致我们自己的nginx服务失效,本文我对过程进行了详细的列出以供参考;
nginx 的源码安装可以参考这篇文章

https://blog.csdn.net/wireless911/article/details/83994953

gitlab-ce版本的安装可以参考这篇文章进行安装

https://www.cnblogs.com/restran/p/4063880.html

nginx反向代理gitlab服务器

  1. 找到gitlab的配置文件,配置文件的路径:/etc/gitlab/gitlab.rb
vim  /etc/gitlab/gitlab.rb
  1. 由于nginx端口冲突,所以修改gitlabnginx的监听端口为8040(这里的监听端口可以设置成任意你想要的端口,当然不能使用80 或者已经被占用的端口)
nginx['listen_port'] = 8040
  1. 修改外部访问gitlabexternal_url地址(这里的地址设置为服务器的地址即可)
external_url  'http;//192.168.9.110'         
  1. 配置外部Nginx服务器(配置文件位置/etc/nginx/nginx.conf)
upstream  gitlab{
  # 7.x 版本在此位置
  # server unix:/var/opt/gitlab/gitlab-rails/tmp/sockets/gitlab.socket;
  # 8.0 位置
  server unix://var/opt/gitlab/gitlab-rails/sockets/gitlab.socket;
}
server{
    listen 80;
    # 此域名是提供给最终用户的访问地址 (即你经过域名解析过的地址,例:gitlab.example.com)
    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://gitlab;
        index index.html index.htm;
    }
} 
  1. 重启外部nginx,重启gitlab服务
sudo /usr/local/nginx/sbin/nginx -s reload
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

重启完成后就可以正常访问了,完成了nginx反向代理gitlab服务,如果无法访问,接着执行第六步;

  1. 权限配置
# 访问会报502.可能是nginx用户无法访问gitlab用户的socket文件,在这里将gitlab文件权限修改掉就好了;
sudo chmod 777 -R /var/opt/gitlab/gitlab-rails

你可能感兴趣的:(linux环境下nginx反向代理gitlab社区版)