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

相关推荐
崔庆才丨静觅8 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅9 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅9 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅10 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment10 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅10 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊10 小时前
jwt介绍
前端
爱敲代码的小鱼10 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax