59、【Ubuntu】【Gitlab】拉出内网 Web 服务:Gitlab 配置审视(三)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【Gitlab】拉出内网 Web 服务:Gitlab 配置审视(二)

分析了 Gitlab 默认的结构:Nginx -> Workhorse -> Puma,下面继续

Nginx 配置审视

OK,下面回到这个自定义配置

首先来分析下这里面的配置项:

  • external_url设置 GitLab 实例对外暴露的 URL,对于个人远程访问来说,这里填 http://localhost 即可,或者不填(默认是 http://localhost ,然后通过端口映射(之前 blog 【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(一) 介绍过),可以直接访问到 Web 服务器的端口,如果是面向公网其他用户的话,这里建议还是使用域名
  • nginx['enable']:表示是否启用 Gitlab 自带的 Nginx 服务,Gitlab 默认会安装并管理自己的 Nginx 实例,设为 true 表示使用自带实例,如果设为 false,则需要自己配置外部的 Nginx 反向代理,这里涉及到 【Ubuntu】【GitLab】局域网用 Ubuntu 搭建 GitLab 里另外一个冗余操作:安装Nginx ,这个后面再分析
  • nginx['redirect_http_to_https']:表示是否自动将 HTTP 请求重定向到 HTTPS,这里设为 false 表示不强制跳转 HTTPS,允许通过 HTTP 访问(在内网或测试环境中很常见)
  • nginx['listen_port']:指定 Gitlab 内置 Nginx 监听的端口,这里设为 80 表示监听标准 HTTP 端口,比如用户访问 http://192.168.1.100(不带端口)就能访问 GitLab

额外说下,端口 80443 是互联网上最常用,最重要的两个默认端口,分别用于 HTTP(明文) 和 HTTPS(加密) 网络通信

  • 端口 80:超文本传输协议 HTTP(全称 HyperText Transfer Protocol),用于普通,未加密的网页浏览,数据以明文传输(容易被窃听或篡改),属于默认端口,访问时不需要显式写出来,比如

http://example.com 实际访问的是 http://example.com:80
http://192.168.1.100 实际访问 http://192.168.1.100:80

因为明文不安全,现代网站(尤其是涉及登录,支付等)已基本弃用纯 HTTP

  • 端口 443:安全的 HTTP(HTTPS = HTTP + SSL/TLS 加密层),所有数据在传输前加密(防窃听,防篡改),用于加密的网页通信,保护数据隐私和完整性,需要服务器配置SSL/TLS 证书,浏览器地址栏会显示锁图标

    80 以样是默认端口,访问时不用写端口号,比如

https://example.com 实际访问的是 https://example.com:443

现代 Web 服务比如 Google,GitHub,GitLab 等都强制使用 HTTPS 访问

  • nginx['custom_nginx_config']:插入一段自定义的 Nginx server 配置块,覆盖或补充默认配置,GitLab 允许通过这个字段添加额外的 Nginx 配置

OK,下面来看这个 server 配置块的详细配置

  • listen *:80;:表示监听所有网络接口的 80 端口,当然,这么做可以防止服务器在局域网内的 IP 发生变换,不用特地指定哪个 IP
  • server_name :指定该虚拟主机响应的主机名,可以看到这里用 IP 地址匹配

这里需要区分下 server 配置块里的 server_name 和上面的 external_url

首先,这是两个层级的(后面详细分析):

  • external_url:是 Gitlab 应用层的身份标识
  • server_name:是 Nginx 路由层的虚拟主机匹配规则

OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog

相关推荐
慧一居士10 小时前
npm install 各参数使用说明, 和使用场景说明
前端
周公挚友10 小时前
2026年单服务器 Ubuntu 24.04 无公网离线部署 MongoDB 8.0.17 三节点副本集(主 / 从 / 仲裁)保姆级教程
linux·mongodb·ubuntu
HABuo10 小时前
【linux进程控制(三)】进程程序替换&自己实现一个bash解释器
linux·服务器·c语言·c++·ubuntu·centos·bash
小二·10 小时前
Python Web 开发进阶实战:神经符号系统 —— 在 Flask + Vue 中融合深度学习与知识图谱
前端·python·flask
Yan.love10 小时前
【CSS-动画与过渡】丝滑的艺术,从简单位移到贝塞尔曲线
前端·css
黎轩栀海11 小时前
Element-UI 用命令行主题工具修改主题色
前端
磊磊cpp11 小时前
Ubuntu 22.04 手动安装 XRDP(RDP 远程桌面)教程
linux·运维·ubuntu
等风来不如迎风去11 小时前
【docker】ubuntu空间不够了,删除ragflow
ubuntu·docker·容器
chipsense11 小时前
Ubuntu服务器上为Apache网站安装部署SSL证书详细步骤
linux·ubuntu·ssl
梦65011 小时前
Vue 中 v-for 与 v-if 优先级
前端·javascript·vue.js