阿里云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 服务了。


目录
相关文章
|
4月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1824 4
|
5月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
508 1
|
4月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
211 5
|
4月前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
224 16
|
5月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
337 18
|
5月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
465 17
|
6月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
6月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
295 0
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
804 3
|
缓存 监控 负载均衡
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
562 0