如何阻止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
相关产品推荐
相关产品推荐

