gitlab 使用现有 nginx 服务器

gitlab 安装自带 nginx,如果想利用原有 nginx,可按如下操作:

8.0 版本 socket 文件位置有变动,感谢评论区的同学。

  • nginx 增加虚拟主机配置

    # gitlab socket 文件地址
    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;
    
      server_name gitlab.liaohuqiu.com;   # 请修改为你的域名
    
      server_tokens off;     # don‘t show the version number, a security best practice
      root /opt/gitlab/embedded/service/gitlab-rails/public;
    
      # Increase this if you want to upload large attachments
      # Or if you want to accept large git objects over http
      client_max_body_size 250m;
    
      # individual nginx logs for this gitlab vhost
      access_log  /var/log/gitlab/nginx/gitlab_access.log;
      error_log   /var/log/gitlab/nginx/gitlab_error.log;
    
      location / {
        # serve static files from defined root folder;.
        # @gitlab is a named location for the upstream fallback, see below
        try_files $uri $uri/index.html $uri.html @gitlab;
      }
    
      # if a file, which is not found in the root folder is requested,
      # then the proxy pass the request to the upsteam (gitlab unicorn)
      location @gitlab {
        # If you use https make sure you disable gzip compression
        # to be safe against BREACH attack
    
        proxy_read_timeout 300; # Some requests take more than 30 seconds.
        proxy_connect_timeout 300; # Some requests take more than 30 seconds.
        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;
      }
    
      # Enable gzip compression as per rails guide: http://guides.rubyonrails.org/asset_pipeline.html#gzip-compression
      # WARNING: If you are using relative urls do remove the block below
      # See config/application.rb under "Relative url support" for the list of
      # other files that need to be changed for relative url support
      location ~ ^/(assets)/  {
        root /opt/gitlab/embedded/service/gitlab-rails/public;
        # gzip_static on; # to serve pre-gzipped version
        expires max;
        add_header Cache-Control public;
      }
    
      error_page 502 /502.html;
    }
    
  • 禁用自带 nginx
    vim /etc/gitlab/gitlab.rb
    

    加入

    nginx[‘enable‘] = false
    
  • 重启 nginx, 重启gitlab
    sudo /usr/local/nginx/sbin/nginx -s reload
    sudo gitlab-ctl reconfigure
    
  • 权限配置

    访问会报502。原本是 nginx 用户无法访问gitlab用户的 socket 文件,用户权限配置,因人而异。粗暴地:

    sudo chmod -R o+x /var/opt/gitlab/gitlab-rails
    
    
    1. 拷贝一份内置nginx 的配置文件 gitlab-http.conf  到新的nginx的配置中
    2. 修改 /etc/gitlab/gitlab.rb ,禁用nginx  nginx[enable] = false
    3. vim /etc/gitlab/gitlab.rb
    
     external_url ‘http://git.qiwenqiqu.com‘ #域名配置
     unicorn[‘listen‘] = ‘0.0.0.0‘
     unicorn[‘port‘] = 8081
    # git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data" } })
     git_data_dirs({ "default" => { "path" => "/data/git-data" } })
    
    #web_server[‘external_users‘] = [‘nginx‘,‘gitlab-www‘,‘git‘,‘www‘,‘www-data‘]
    #新nginx用户www能够访问gitlab,很重要
    web_server[‘external_users‘] = [‘www‘] 
    
    #然后 gitlab-ctl reconfigure ,然后 gitlab-ctl restart
    #备忘录 ,比较乱 忽略
    
    gitlab 坑
    ./embedded/service/gitlab-shell/lib/gitlab_config.rb
    
    ./embedded/lib/ruby/gems/2.3.0/gems/omniauth-gitlab-1.0.2/lib/omniauth/strategies/gitlab.rb
    ./embedded/cookbooks/cache/cookbooks/gitlab/libraries/gitlab.rb
    ./embedded/cookbooks/gitlab/libraries/gitlab.rb
    ./embedded/service/gitlab-rails/lib/gitlab.rb
    
    1.[端口不通]
    vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
    listen "0.0.0.0:8081", :tcp_nopush => true
    一定不要用 127.0.0.1
    
    firewall-cmd --permanent --add-port=8081/tcp
    firewall-cmd --reload
    
    1.[样式错乱] gitlab error compiling css asset
    vim ./embedded/service/gitlab-rails/config/gitlab.yml
    webhook_timeout: 120
    
    gitlab 数据迁移
    http://blog.csdn.net/hj7jay/article/details/54311010
    
    vim /etc/gitlab/gitlab.rb
    
    external_url ‘http://git.qiwenqiqu.com‘ #域名配置
     unicorn[‘listen‘] = ‘0.0.0.0‘
     unicorn[‘port‘] = 8081
    # git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data" } })
     git_data_dirs({ "default" => { "path" => "/data/git-data" } })
    [迁移数据注意目录名称不要写错了]
    
    #web_server[‘external_users‘] = [‘nginx‘,‘gitlab-www‘,‘git‘,‘www‘,‘www-data‘]
    web_server[‘external_users‘] = [‘www’]
    
    配置文件位置:
    
     [
    /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
     /etc/gitlab/gitlab.rb
    /opt/gitlab/embedded/service/gitlab-shell/config.yml
    ]
    
    域名配置
    vim /opt/gitlab/embedded/service/gitlab-shell/config.yml
    gitlab_url: "http://0.0.0.0:8081"
    
    ####
    配置GitLab域名,否则项目git clone的地址时错
    vim  /etc/gitlab/gitlab.rb
    
    编辑:external_url ‘你的网址‘
    
    例如:external_url ‘http://192.168.1.100‘
    
    编辑完成后,再sudo gitlab-ctl reconfigure一下,使配置生效
    
    ####
    
    ### gitlab配置 http://www.cnblogs.com/softidea/p/5229412.html ###
    
    nginx 冲突配置
    https://docs.gitlab.com/omnibus/settings/nginx.html
    https://gitlab.com/gitlab-org/gitlab-workhorse/issues/26
    
    $$
    2017/04/25 00:18:37 [crit] 6297#0: *32 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 221.216.146.9, server: test.qiwenqiqu.com, request: "GET / HTTP/1.1", upstream: "http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/", host: "test.qiwenqiqu.com"
    $$
    $$sudo usermod -aG gitlab-www www$$
     
时间: 2024-07-29 13:28:10

gitlab 使用现有 nginx 服务器的相关文章

nginx服务器介绍,负载均衡,文件配置,内核优化

一.nginx服务器的介绍 nginx服务器是一个web服务器,有高性能,内存消耗比较低,具有反向代理功能,可以代理web和mail,还有负载均衡的功能,将用户的请求进行转发的real server服务器中 二.nginx安装 1.关闭防火墙和SELINUX service iptables stop chkconfig iptables off chkconfig iptables --list getenforce 2.在官网下载相关安装包 wget http://nginx.org/dow

gitlab更改默认Nginx

更换gitlab自带Nginx服务,使用自行编译Nginx来管理gitlab服务. 编辑gitlab配置文件禁用自带Nignx服务器 vi /etc/gitlab/gitlab.rb...#设置nginx为false,关闭自带Nginxnginx['enable'] = false... 检查默认nginx配置文件,并迁移至新Nginx服务 /var/opt/gitlab/nginx/conf/nginx.conf          #nginx配置文件,包含gitlab-http.conf文件

2018.11.14 Nginx服务器的使用

Nginx简单教程 1.什么是Nginx? Nginx(engine x)是一款轻量级的Web服务器.反向代理服务器及电子邮件(IMAP/POP3)代理服务器 什么是反向代理服务器? 反向代理方式是指以代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的返回结果返回给Internet上请求连接的用户端,此时代理服务器对外的表现为一个反向代理服务器 2.安装与使用 2.1安装 nginx官网下载地址:http://nginx.org,发布版本分为

nginx服务器代理获取接口数据

自从学会用nginx服务器代理抓取数据,妈妈再也不用担心我写DEMO时拿不到数据了,从此你也摆脱了自己造数据的烦恼.哇!又出新框架了,走,写个DEMO练习去,那我们用React.JS仿制个淘宝出来吧,淘宝数据怎么办???so easy , 直接去抓取接口数据就可以了. 一.下载nginx服务器 去nginx官网下载nginx服务器,我们就下载nginx/Windows-1.8.1 pgp 这个吧! 二.配置环境 1. 将下载的压缩包解压后获得如下图所示的文件夹: 2.打开conf文件夹并打开ng

在CentOS 7中安装nginx服务器

简要地介绍一下,如何在CentOS 7中安装nginx服务器  下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm  建立nginx的yum仓库 # rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm  下载并安装nginx # yum inst

nginx服务器的网站权限问题

有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是nginx或者Apache,我们一般会配置好网站根目录后然后往直接把网站解压或者上传到根目录中,这样引起的问题是无法对对文件进行任何的操作导致网站的异常,这在框架中最为常见,本地运行好好的网站,上传到服务器之后突然就不能访问了,出现很多错误,这就是在Linux下存在的权限问题,网上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件权限全部打开,其实这样能解决问题,但是不是最好的解决方案,我们如果理解

Nginx服务器处理相关图片详细方法

Nginx服务器在进行图片处理时,会有有不少的问题.说到访问权限控制,很多看了Nginx相关文章的朋友都会自然联想到X-Accel-Redirect这个头.这个头有个缺陷,就是所有的访问都会先经过一个fastcgi来判断权限. 在下载系统上,用这个方法是非常合适的,但是在访问量非常大的图片服务器,单单用这个方法会使大量无需权限判定的图片也经过一个fastcgi处理,多此一举并且无端耗费大量的资源.虽然X-Accel-Redirect是一个新的方案,但是并不代表它能很好的解决所有问题,同时也不妨碍

windows环境下nginx服务器的安装与配置

转载至:http://www.cnblogs.com/hxxy2003/archive/2012/09/20/2695254.html nginx服务器是一个高性能的HTTP和反向代理服务器,它以稳定性.强大的功能.示例配置文件和低系统资源的消耗而闻名了.现在国内有很多大型网站都在使用nginx服务器,如腾讯.新浪.网易等. 1.安装nginx,去官网http://nginx.net去下载nginx,解压后即可: 2.使用命令行进入nginx的目录,如下: C:\Users\della>cd c

linux 安装nginx服务器

LINUX安装nginx服务器 1.安装nginx所需要的依赖包 说明:如果没有安装以上的安装包可以按照以下的方式安装 2.上传nginx包 在ssh远程连接工具(本文使用的是Xshell 5)中输入rz后会提示选择软件包 3.解压nginx软件包 4.创建nginx用户 5.配置并安装nginx服务器 ./configure --prefix=/usr/local/nginx--user=nginx --group=nginx --with-http_stub_status_module &&a