git设置代理_外部Nginx设置Gitlab和部署Pages服务

服务器上已经安装好了Nginx,配置了多个网站服务,这个情况下我们怎样安装配置Gitlab才能不影响现有的Nginx网站服务?以及如何开启Pages用户网站页面服务?

34bcf3217c3543327e4288a1e213ec8a.png

以下参照阿里云CentOS7进行介绍,Nginx的安装请参照下面这个文章:

CentOS7下的Nginx安装和配置

为Gitlab启用外部Nginx服务

Gitlab安装好之后,主要设置都在/etc/gitlab/gitlab.rb文件里面,你可以用sftp软件登陆服务器找到它,然后用任何IDE或文本编辑器编辑。正常情况全部内容都被注释了,我们添加以下三行。

external_url 'http://git.10knet.com'nginx['enable'] = falseweb_server['external_users'] = ['nginx']

如果是apache服务器,应改为web_server['external_users'] = ['www-data']

保存更新,然后重新配置Gitlab,使用下面命令:sudo gitlab-ctl reconfigure

如果遇到问题的话,更多参考内容看这里(英文)。

设置Nginx代理Gitlab服务

Gitlab官方为我们准备好了Nginx需要的配置文件,访问这里GitLab recipes repository去下载。

Nginx下载 web-server/nginx/gitlab-omnibus-nginx.conf文件。

它其实就是Nginx虚拟服务的配置文件,打开后查看,修改内容类似下面这样:

upstream gitlab-workhorse {  server unix:/var/opt/gitlab/gitlab-workhorse/socket;}server {  listen 80 ;  server_name git.10knet.com;  server_tokens off;   root /opt/gitlab/embedded/service/gitlab-rails/public;  access_log  /var/log/nginx/gitlab_access.log;  error_log   /var/log/nginx/gitlab_error.log;  location / {    client_max_body_size 0;    gzip off;    proxy_read_timeout      300;    proxy_connect_timeout   300;    proxy_redirect          off;    proxy_http_version 1.1;    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-Forwarded-Proto   $scheme;    proxy_pass http://gitlab-workhorse;  }}

其实只要修改server{}开头的几行。你可以把这个server的配置整合到你原来的/etc/nginx/nginx.conf文件或其他配置文件中,然后nginx -s reload使配置生效。

注意!不是直接添加到conf文件结尾,而是根据具体情况,仔细规划一下才行。更多内容请参考Nginx官方配置说明。

开启Gitlab的Pages功能

Gitlab的Pages服务可以把用户的一个项目变为一个静态网站,在gitlab.rb中要开启设置:

pages_external_url "http://git.10knet.com/"gitlab_pages['enable'] = true

完整的具体配置参照我的这个文章:

部署Gitlab Pages服务

但这个文章是不使用外部Nginx的情况。下面我们来看如何配置外部Nginx服务来实现子域名解析(泛解析)。

实际上所有的Pages静态网页文件都在/var/opt/gitlab/gitlab-rails/shared/pages这个目录,我们的任务就是把zhyuzh.git.10knet.com/mysite这样的地址解析到.../pages/zhyuzh/mysite目录。

添加Nginx的Pages代理设置

默认情况Gitlab的Pages服务运行在本地的8090端口上,我们为Nginx添加以下设置:

upstream gitlab-pages{    server 127.0.0.1:8090;}server {  listen 80;  server_name *.git.10knet.com;  location / {        proxy_http_version 1.1;    proxy_set_header    Upgrade            $http_upgrade;    proxy_set_header    Connection         "upgrade";    proxy_set_header    Host               $http_host;    proxy_set_header    X-Real-IP          $remote_addr;    proxy_set_header    X-Forward-For      $proxy_add_x_forwarded_for;    proxy_set_header    X-Forward-Proto    http;    proxy_set_header    X-Nginx-Proxy      true;    proxy_redirect      off;    proxy_pass http://gitlab-pages;  }}

这个和前面那个gitlab-workhorse设置很像,可以对比参考。保存之后nginx -s reload重载设置,正常的话就完全OK了。

附注

10knet.com现在采用的Nginx策略是:

  • /etc/nginx/nginx.conf只提供http{}并加载10knet/nginx/*.conf配置文件。
  • 10knet/nginx/下包含多个配置文件:main.conf提供主路由10knet.com和泛解析xxx.10knet.com。gitlab.conf提供git.10knet.com和Pages的xxx.10knet.com的解析。kis.conf提供kis.10knet.com的静态文件服务和借口代理。更多...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值