1. 摘要
《【DevOps实践】1.在Ubuntu上安装持续集成工具Jenkins》安装的Jenkins是http://IP访问的,改为https访问,相对安全些。本文讲解配置方法。
2.实践内容
2.1 配置域名解析
经过第一篇文章的操作,使用http:// ip_address:8080的方式输入用户名/密码已经可以访问jenkins服务器了。
先配置域名解析到该服务器。本例中,我们的最终访问地址为
https://jenkins.artarva.com。
2.2 申请免费SSL证书
很多同学可能还不知道,阿里云是可以申请免费SSL证书的,时间有效期为1年。每个企业有20个免费的单域名SSL证书。
https://yundun.console.aliyun.com/?spm=a2c1d.8251892.products-grouped.dcas.50595b76R0EC37&p=cas#/overview/cn-hangzhou
需要返回到域名解析中,把按照提示,把DNS解析到域名解析中。然后下载NGINX的SSL证书文件,5241378_jenkins.artarva.com_nginx.zip,解压后有私钥和证书文件信息:5241378_jenkins.artarva.com.key,5241378_jenkins.artarva.com.pem。
2.3 配置NGINX反向代理
我们假设NGINX在目标服务器已经安装好了。没有安装好的,参考《【NGINX入门】1.Nginx基本介绍和安装入门》。
配置Jenkins的NGINX配合文件“Jenkins.conf”,例如:
server
{ listen 443 ssl http2;
#listen 80;
server_name jenkins.artarva.com;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /etc/letsencrypt/live/jenkins.artarva.com/5241378_jenkins.artarva.com.pem;
ssl_certificate_key /etc/letsencrypt/live/jenkins.artarva.com/5241378_jenkins.artarva.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#Location配置
location / {
proxy_set_header X-Rea $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log /www/wwwlogs/jenkins.artarva.com.log;
error_log /www/wwwlogs/jenkins.artarva.com.log;
}
然后在nginx.conf中增加该配置文件。
...
include /www/server/nginx/conf/jenkins.conf;
重启下NGINX,就可以直接访问https://jenkins.artarva.com了。
2.4 问题描述
问题描述:
使用nginx 对Jenkins做反向代理,nginx使用https协议,Jenkins使用http访问,用https://jenkins.com 访问可以正常进入首页,在首页里点击其他功能页时,跳转会自动请求协议为http的协议。所以我们需要将跳转其他功能页时,使用的协议也修改为https。
解决方式
需要在nginx配置中加入 proxy_set_header X-Forwarded-Proto $scheme; 这个请求头。
location / {
proxy_set_header X-Rea $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-Proto $scheme;
}
转载于:https://www.cnblogs.com/jakaBlog/p/11341532.html
3. 参考
(1)如何在Ubuntu 16.04上安装Jenkins
https://www.jianshu.com/p/845f267aec52
(2)Jenkins 通过nginx使用Https协议反向代理
https://blog.csdn.net/diandianpai7591/article/details/101885689
(3)修改Ubuntu下的jenkins端口号
https://blog.csdn.net/csfreebird/article/details/9033443