返回

解决 GitLab 自带 Nginx 与系统 Nginx 端口冲突的两种方案

原创
admin的头像admin·发布于 2025-07-23 12:32·阅读 1

在使用 GitLab Omnibus 包时,默认会启用内置的 Nginx 并监听 80 端口,这往往会与系统中已安装的 Nginx 产生端口冲突,导致其中一个实例无法启动。本文将围绕这一问题,提供两种常见且实用的解决方案,并附上详细操作步骤。


问题描述

  • 场景:服务器上已运行系统级 Nginx,后续安装 GitLab Omnibus 包。

  • 冲突表现

    • GitLab 内置 Nginx 占用 80 端口,系统 Nginx 启动时报错:

      复制代码
      nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
      nginx (pid ...) already running.
    • 无法同时运行两套 Nginx 服务。


方案一:修改 GitLab 内置 Nginx 监听端口

  1. 编辑 GitLab Nginx 配置

    bash 复制代码
    sudo vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
  2. 将监听端口 80 修改为其他端口,例如 8022:

    nginx 复制代码
    server {
      listen *:8022;
      server_name localhost;
      server_tokens off;
      ...
    }
  3. 重启 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl restart
  4. 访问
    打开浏览器,访问 http://<服务器IP>:8022 即可。


方案二:禁用 GitLab 内置 Nginx,使用系统 Nginx 反向代理

  1. gitlab.rb 中禁用内置 Nginx

    bash 复制代码
    sudo vim /etc/gitlab/gitlab.rb

    ruby 复制代码
    nginx['enable'] = true

    修改为

    ruby 复制代码
    nginx['enable'] = false
  2. 配置 GitLab Workhorse 监听 TCP
    在同一文件中,添加或修改:

    ruby 复制代码
    gitlab_workhorse['listen_network'] = "tcp"
    gitlab_workhorse['listen_addr']    = "127.0.0.1:8021"
  3. 应用配置

    bash 复制代码
    sudo gitlab-ctl reconfigure
  4. 使用系统 Nginx 反向代理
    在系统 Nginx 配置目录下(如 /usr/local/nginx/conf/vhost/)新建 gitlab.conf

    nginx 复制代码
    server {
      listen       8022;
      server_name  localhost;
    
      location / {
        proxy_pass http://127.0.0.1:8021;
        proxy_set_header   Host              $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;
      }
    }
  5. 重启系统 Nginx

    bash 复制代码
    sudo systemctl restart nginx
    # 或
    sudo service nginx restart
  6. 访问
    浏览器打开 http://<服务器IP>:8022,即可通过系统 Nginx 访问 GitLab。


作者的其他文章
IP地址配置HTTPS 内网IP配置HTTPS保姆教程
本文介绍了在Nginx中配置HTTPS的完整流程:1)使用OpenSSL生成自签名证书和私钥;2)解密私钥以避免重启时输入密码;3)配置Nginx支持HTTPS,包括指定证书路径、设置安全协议和加密套件等。适用于开发、测试和内网环境,但需注意自签名证书会触发浏览器警告,生产环境建议使用CA签发的正式证书。通过简单的命令和配置即可实现基本的HTTPS加密保护。
IP地址配置HTTPS 内网IP配置HTTPS保姆教程
Docker 数据目录迁移完整指南:从 /var/lib/docker 迁移到自定义路径
本文介绍了将 Docker 数据目录从 /var/lib/docker 迁移到自定义路径 /data2/docker/data 的完整过程,包括停止 Docker 服务、复制数据、修改配置文件及验证数据完整性。提供了常见问题的解决方案,帮助用户在空间不足时顺利迁移 Docker 数据。
Docker 数据目录迁移完整指南:从 /var/lib/docker 迁移到自定义路径
2025年必备:让Nginx配置清晰如诗的工具推荐
文章浏览阅读464次,点赞4次,收藏4次。本文介绍了格式化Nginx配置文件的重要性,指出良好格式能提升可读性、团队协作效率和降低错误风险。文章推荐了2025年优秀的在线格式化工具,这类工具应具备操作简单、专业格式化效果、安全保障等特性。建议将格式化工具集成到开发流程中,并制定团队规范,以优雅管理Nginx配置。文末推荐了一个专业在线格式化工具,帮助开发者高效处理配置文件。
2025年必备:让Nginx配置清晰如诗的工具推荐
Claude 命令大全:从入门到精通的终端操作指南(2025 最新)
本教程全面整理 *Claude 命令行(CLI)使用指南*,从基础启动命令、项目管理、权限控制、模型切换到高级思考模式,全方位提升开发者在终端中使用 Claude 的效率。适合新手与资深开发者收藏参考。
Claude 命令大全:从入门到精通的终端操作指南(2025 最新)
屏幕检测专家 — 专业的在线屏幕测试工具
屏幕检测专家 — 专业的在线屏幕测试工具
屏幕检测专家 — 专业的在线屏幕测试工具
Keye-VL-1.5-8B(快手 Keye-VL)— 腾讯云两卡 32GB GPU **保姆级** 部署指南(Ubuntu 22.04 / CUDA 12.2 / Driver 535.216.01 / Python 3.10)
保姆级教程:在腾讯云两卡 32GB GPU(Ubuntu 22.04 / CUDA 12.2)上完整部署快手 Keye-VL-1.5-8B。包含驱动安装、conda 环境、PyTorch、bitsandbytes、vLLM、ModelScope 模型下载与 Gradio demo 运行步骤及常见排错。适合工程复现与上线优化。
Keye-VL-1.5-8B(快手 Keye-VL)— 腾讯云两卡 32GB GPU **保姆级** 部署指南(Ubuntu 22.04 / CUDA 12.2 / Driver 535.216.01 / Python 3.10)
Ubuntu系统ECS重启后“/etc/resolv.conf”被还原怎么办?
处理方法 在处理前,建议先禁用systemd-resolved服务。 方法一:手动修改/etc/resolv.conf文件。 以root用户登录ECS。 关闭并禁用systemd-resolved服务
共享打印机报错连不上怎么办?修复错误代码(0x000006d9/0x0000011b 等)最新Win10/11 共享打印机常见问题 + 解决教程,附工具!
Win11 打印机共享报错全面修复指南:涵盖 0x000006d9、0x0000011b、0x0000007e 等常见码,并提供一键 PowerShell 工具,十分钟内搞定老款惠普共享打印机。
共享打印机报错连不上怎么办?修复错误代码(0x000006d9/0x0000011b 等)最新Win10/11 共享打印机常见问题 + 解决教程,附工具!
实战Spring Boot + Vue 集成 Activiti 工作流引擎 | 双模式简单 & 自定义审批平台
基于 Spring Boot 与 Vue 的高效工作流平台,支持简单模式与自定义模式双引擎,在线流程建模、版本管理、审批节点灵活配置,多渠道消息通知,Docker/K8s 部署,高可用与可扩展。
2025 年国内 Docker/DockerHub 镜像源加速列表(7 月 28 日更新 · 长期维护)
2025 年最新国内 Docker Hub 镜像源加速列表,包含轩辕镜像、腾讯云、阿里云、DaoCloud、AtomHub 等多家稳定 CDN 服务,附详细配置教程与常见问题说明,适用于 Linux、macOS、Windows 平台。
2025 年国内 Docker/DockerHub 镜像源加速列表(7 月 28 日更新 · 长期维护)