You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止GitLab占用80端口并仅启用HTTPS服务?

关闭GitLab所有HTTP服务,仅保留HTTPS的配置方法

一、定位80端口占用原因

你的GitLab虽已配置external_url 'https://git.mydomain.com:1443',但80端口仍被占用,核心原因是GitLab内置Nginx默认启用并监听80端口——即使你注释了nginx['enable'] = true,该配置的默认值仍为true,所以内置Nginx依然在后台运行并占用80端口。

二、具体配置步骤

方案1:保留内置Nginx,仅禁用HTTP监听(推荐)

修改gitlab.rb配置文件,添加/调整以下内容:

# 明确启用内置Nginx(消除配置歧义)
nginx['enable'] = true

# 禁用HTTP转HTTPS的重定向逻辑(彻底关闭HTTP服务)
nginx['redirect_http_to_https'] = false

# 配置Nginx仅监听HTTPS的1443端口
nginx['listen_addresses'] = ['*']
nginx['listen_port'] = 1443
nginx['listen_https'] = true

# 关键:关闭Nginx对HTTP端口的监听,释放80端口
nginx['http_enabled'] = false

方案2:禁用内置Nginx,直接用Puma提供HTTPS服务

若不需要反向代理,可让Puma直接处理HTTPS请求:

# 禁用内置Nginx
nginx['enable'] = false

# 配置Puma监听HTTPS的1443端口,替换为你的SSL证书路径
puma['ssl_listen'] = ['0.0.0.0:1443']
puma['ssl_certificate'] = '/path/to/your/ssl-cert.crt'
puma['ssl_certificate_key'] = '/path/to/your/ssl-key.key'

# 关闭Puma的HTTP监听,仅保留HTTPS服务
puma['listen'] = []

三、让配置生效

修改完成后,执行以下命令刷新配置并重启服务:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

四、验证端口状态

执行命令确认80端口已被释放:

sudo lsof -i :80
# 或
sudo netstat -tulpn | grep :80

若无输出,说明80端口已不再被GitLab占用。


内容的提问来源于stack exchange,提问作者Roland Seuhs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:33:27