小弟在部署完gitlab和jenkins后,利用natapp实现内网穿透,通过nginx实现代理转发,访问gitlab和jenkins,所以写下这篇,以防踩坑。
环境:
jenkins 192.168.2.111:8026
gitlab 192.168.2.111:8027
nginx 192.168.2.103
域名 www.hunter.com
因为jenkins和gitlab和nginx不在同一台机器上,所以需要修改jenkins和gitlab的访问路径,以达到通过nginx访问。
一、jenkins配置修改
1、找到jenkins配置添加前缀
vim /usr/lib/systemd/system/jenkins.service
找到下边这行配置,进行修改
# Servlet context (important if you want to use reverse proxying)
Environment="JENKINS_PREFIX=/jenkins"
该配置是对jenkins访问路径加以前缀,上边注释 servlet context也解释的很明白
2、然后重载配置,重新启动jenkins
systemctl daemon-reload
systemctl restart jenkins
这样,访问路径就变了
原路径:192.168.2.111:8026
现路径:192.168.2.111:8026/jenkins
二、gitlab路径修改
1、找到gitlab配置文件,进行修改
#gitlab目录
cd /etc/gitlab/
#修改gitlab配置
vi gitlab.rb
找到如下配置,进行修改
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://192.168.2.111:8027/gitlab'
此路径为访问gitlab的外部url路径,可以通过此路径访问gtilab
2、重载配置,重启服务
#重载配置
gitlab-ctl reconfigure
#重启
gitlab-ctl restart
三、修改nginx配置
1、找到nginx配置文件,加入如下配置
server {
listen 80;
server_name 6eaeb60cdsfsd19ae96.natapp.cc;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /jenkins/ {
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_pass http://192.168.2.111:8026;
}
location /gitlab/ {
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_pass http://192.168.2.111:8027;
}
}
其中,
service name值是natapp 生成的域名
下边的location,为jenkins和gitlab的转发配置
注意:
有关gitlab location的转发配置路径可参考此篇文章(nginx中localion后路径带或不带/的匹配规则_nginx location末尾/-CSDN博客)
至此,访问www.hunter.com/jenkins即可访问jenkins,访问www.hunter.com/gitlab即可访问gitlab。
部署配置过程中,主要问题点在于nginx的转发配置,以及gitlab和jenkins的路径配置修改,至于其他的应用(比如禅道)也需要内部网络去部署,相信也是同理。
希望自己遇到的诸多困难,能带给各位一点点小小的帮助,感谢。