标签:real external serve rest star 端口 devops 监听 编辑
综述:这里用的是Docker 安装nginx以及Gitlab,实际上运用与单独部署没什么特别大的差别。
唯一的不同就是Docker创建内部网络部分的小差别。在文中有特别指出。
即便不采用Docker的方式,只需要把主机名部分换成相应的IP即可。很多运维偷懒或者弄不明白,主要在网络设置部分与GitLab的设置上。
仔细看本文,绝对可行。
Docker 新建网络
$docker network create inet
Docker 安装Nginx
$docker pull nginx
Nginx设置反向代理,
upstream docker_gitlab{
server gitlab.local:10080;
}
server
{
listen 443 ssl;
server_name gitlab.smokelee.com;
ssl_certificate /etc/nginx/certs/gitlab.smokelee.com.crt;
ssl_certificate_key /etc/nginx/certs/gitlab.smokelee.com.key;
location /{
proxy_pass http://docker_gitlab;
proxy_redirect http:// https://;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
运行Nginx
$docker run -d -p 80:80 -p 443:443 --name nginx.local \
--restart=always --network inet --network-alias nginx.local \ ------- 内部网络Nginx的主机名
-v /media/ext2/devops/nginx/conf:/etc/nginx -v /media/ext2/devops/nginx/www:/usr/share/nginx/html -v /media/ext2/devops/nginx/log:/var/log/nginx nginx
参数说明(重点参数):
Nginx的运行环境
nginx运行在2个网络中,一个是inet,一个是宿主机网络。这样,可以在宿主机的80以及443端口接受正常的HTTP,HTTPS请求,并反向代理到其它的容器。
$docker run -d -p 10022:22 --restart always --name gitlab.local --network inet --network-alias gitlab.local -v /media/ext2/devops/gitlab/etc:/etc/gitlab -v /media/ext2/devops/gitlab/logs:/var/log/gitlab -v /media/ext2/devops/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
参数说明:
编辑配置文件
$docker exec -it 容器ID vim /etc/gitlab/gitlab.rb
修改如下
# Nginx为gitlab准备的虚拟主机域名。这个会出现在代码仓库的《链接中》
external_url 'https://gitlab.smokelee.com'
# 关闭GitLab 内置Nginx
nginx['enable'] = false
# 设置监听方式为TCP
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "0.0.0.0:10080"
# 设置可信代理(也就是Nginx)注意这里的‘nginx.local’是Nginx的内部网络主机名
gitlab_rails['trusted_proxies'] = ['nginx.local']
# 设置ssh主机名,这个会出现在主机代码的仓库中
gitlab_rails['gitlab_ssh_host'] = 'gitlab.smokelee.com'
调用Gitlab重新配置程序
$docker exec -it 容器ID gitlab-ctl reconfigure
标签:real external serve rest star 端口 devops 监听 编辑
原文地址:https://www.cnblogs.com/smokelee/p/12444909.html