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

相关推荐
syt_10131 小时前
grid布局之-子项放置2
前端·javascript·css
韩曙亮1 小时前
【Web APIs】JavaScript 动画 ② ( 缓动动画 | 步长计算取整 )
前端·javascript·动画·web apis·缓动动画·匀速动画
fruge1 小时前
Vue3 响应式原理深度解析:Proxy 实现与依赖收集逻辑
前端
bank_dreamer1 小时前
【ubuntu】vim作为默认编辑器
ubuntu·编辑器·vim
by__csdn1 小时前
javascript 性能优化实战:异步和延迟加载
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
by__csdn1 小时前
JavaScript性能优化实战:减少DOM操作全方位攻略
前端·javascript·vue.js·react.js·性能优化·typescript
xiaoxue..1 小时前
从 “手动搬砖“ 到 “自动施法“:界面开发的三次 “渡劫“ 升级记
前端·前端框架·vue
Monly211 小时前
Vue:使用v-if v-else加载两个el-table 在切换时,会出现数据在家混乱 数据加载不全的情况
前端·javascript·vue.js
南知意-1 小时前
一个基于 Vue、Datav、Echart 框架开源免费的数据大屏可视化系统
前端·javascript·vue.js·开源软件·大屏项目