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

相关推荐
ohyeah3 小时前
深入理解 React 中的 useRef:不只是获取 DOM 元素
前端·react.js
MoXinXueWEB3 小时前
前端页面获取不到url上参数值
前端
低保和光头哪个先来3 小时前
场景6:对浏览器内核的理解
开发语言·前端·javascript·vue.js·前端框架
想要一只奶牛猫4 小时前
Spring Web MVC(三)
前端·spring·mvc
奋飛4 小时前
微前端系列:核心概念、价值与应用场景
前端·微前端·micro·mfe·什么是微前端
进击的野人5 小时前
Vue Router 深度解析:从基础概念到高级应用实践
前端·vue.js·前端框架
北慕阳5 小时前
健康管理前端记录
前端
1024小神5 小时前
cloudflare的worker中的Environment环境变量和不同环境配置
前端
栀秋6665 小时前
从零开始调用大模型:使用 OpenAI SDK 实现歌词生成,手把手实战指南
前端·llm·openai
l1t5 小时前
DeepSeek总结的算法 X 与舞蹈链文章
前端·javascript·算法