阿里云ESC 部署 GitLab-ce 并配置使用外部 nginx

简介: 在阿里云 ESC 上部署 GitLab 社区版并配置使用外部的 nginx。

最近试着在阿里云的 ESC 上部署了一下 GitLab 的社区版本,并且使用了非内嵌的 nginx 服务,遇到不少坑,特意记录一下。

首先是安装 GitLab 社区版,具体安装的流程按照官网的说明来进行。GitLab 官方提供了 Omnibus包安装、社区提供的安装方法、和官方的其他安装方法。这里推荐使用 Omnibus 包来安装,这也是官方推荐的方式。用这个包安装部署gitlab,便于后期的配置修改和更新。
Omnibus 包安系统版本分为不同的包,我的系统是 Centos7的,所以采用对应7的安装包。步骤如下:

一 官方Centos7的安装说明地址

https://www.gitlab.com.cn/installation/#centos-7


1.安装相关依赖,打开系统防火墙的 HTTP 和 SSH的访问。

sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

2.添加GitLab 镜像源并安装

curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

3.配置并启动服务

sudo gitlab-ctl reconfigure
4.通过访问上面配置的域名来重新设置管理员密码。

这里需要注意,因为我们后面要改用外部的 nginx 服务,要 copy 使用 gitlab 默认生成的 nginx 服务配置文件,所以在第三步先不要修改任何信息,直接执行配置命令即可。


GitLab 服务安装部署完成,接下来是配置该服务使用外部的 nginx 来访问。

GitLab默认使用内部的 nginx 服务作为代理访问,按照官网的说明,可以使用已有的外部 nginx 来代替。官网的修改步骤地址:

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#using-a-non-bundled-web-server

按照这个步骤修改,有些繁琐。下面有一个偷懒的方法:

还记得上面的安装步骤中,最后配置的那一步吗?我们在执行这一步的时候,先不要修改任何配置,由 reconfigure 操作生成 GitLab 使用内部 nginx 的所有配置文件,然后将相关的配置文件 copy 到本地使用的 nginx 服务的配置目录,配置相关访问域名就可以了。

GitLab 默认生成的 nginx 配置文件位置在 /var/opt/gitlab/nginx/conf。

1.将gitlab-http.conf 和nginx-status.conf copy 到本地的 nginx 配置目录就可以了。然后参考 GitLab 的 nginx.conf 内容,修改本地的 nginx 配置,重启 nginx 服务。

2.修改 GitLab 的配置文件内容,位置在/etc/gitlab/gitlab.rb。修改内容如下:

在配置文件结尾,添加如下信息:

#定义访问域名
external_url 'http://git.example.com'
#禁用内部 nginx
nginx['enable'] = false
#配置可以访问 gitlab 工作目录的用户,赋予 nginx 用户对该目录的读写权限
web_server['external_users'] = ['nginx','gitlab-www','git']
编辑以上内容后保存,重新执行 gitlab 的配置操作。

sudo gitlab-ctl reconfigure

以上操作完成后,即可以正常访问 gitlab 服务了。


目录
相关文章
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
13天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
26天前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
123 1
nginx配置反向代理404问题
|
11天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
50 1
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx配置
【10月更文挑战第22天】在实际配置 Nginx 时,需要根据具体的需求和环境进行调整和优化。同时,还需要注意配置文件的语法正确性和安全性。
47 7
|
2月前
|
前端开发 JavaScript 应用服务中间件
终极 Nginx 配置指南
本文介绍了Nginx的基本配置及其优化方法。首先,通过删除注释简化了Nginx的默认配置文件,使其更易于理解。接着,文章将Nginx配置文件分为全局块、events块和http块三部分进行详细解释。此外,还提供了如何快速上线网站、解决前端history模式404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离的具体配置示例。最后,附上了Nginx的基础命令,包括安装、启动、重启和关闭等操作。
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
160 0
|
4月前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
|
3月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
5月前
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
入职必会-开发环境搭建54-GitLab下载和安装