美文网首页AI-大数据
【DevOps实践】2. 使用NGINX配置Jenkins的ht

【DevOps实践】2. 使用NGINX配置Jenkins的ht

作者: 笔名辉哥 | 来源:发表于2021-03-17 15:31 被阅读0次

    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

    相关文章

      网友评论

        本文标题:【DevOps实践】2. 使用NGINX配置Jenkins的ht

        本文链接:https://www.haomeiwen.com/subject/jcwccltx.html