GitLab 的 Web 服务应该限制只有制定域名可以访问,防止其它非备案的解析,对于独立运行的 nginx 这非常简单。虽然GitLab 的 Web 服务由 nginx 提供,但其配置文件由 gitlab-ctl reconfigure 自动生产,不应该手工更改 nginx 的配置文件,因为会被 reconfigure 覆盖,应该通过修改 gitlab.rb 来控制 nginx 配置。
通过修改 gitlab.rb 或者环境变量插入一个 nginx 配置文件
nginx['custom_nginx_config'] = "include /etc/gitlab/nginx-default.conf;"
nginx-default.conf 配置文件内容如下
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 default_server ssl;
listen [::]:443 default_server ssl;
http2 on;
server_name _;
server_tokens off;
ssl_reject_handshake on;
return 444;
}