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

相关推荐
泯泷18 小时前
手搓JSVMM第 8 篇:函数调用:参数、返回值与调用帧
前端·javascript·前端框架
Sherotree19 小时前
Google Antigravity——Agent 被提到主界面
前端·ide·后端·edge浏览器
里欧跑得慢19 小时前
Flutter 像素级还原:设计稿到代码的视觉无损转换技巧
前端·css·flutter·web
里欧跑得慢19 小时前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
苏灿烤鱼20 小时前
没有机密文件,也没有付费数据,在浏览器里造一颗"间谍卫星"
前端·javascript·github
泯泷20 小时前
手搓JSVM第 5 篇:写第一个编译器:从 AST 生成 IR
前端·javascript·算法
泯泷20 小时前
手搓JSVM第 7 篇:控制流:if、while 与 jump
前端·javascript·算法
泯泷21 小时前
手搓JSVM第 6 篇:把 IR 编成字节码:emit 与 label fixup
前端·javascript·算法
泯泷21 小时前
手搓JSVM第 3 篇:从栈式 VM 到寄存器式 VM:为什么我们选择寄存器
前端·javascript·算法
泯泷21 小时前
第 4 篇:让 VM 支持变量:Slot、Environment 与 TDZ
前端·javascript·算法