Jenkins配置Nginx反向代理

    Jenkins打开的默认地址为::8080,我们往往都会使用反向代理实现对8080端口的访问,而对外关闭8080端口,所以我们这里使用了nginx对Jenkins进行了转发,但是存在一个问题,Jenkins的根目录直接是端口,没有一个统一的其实目录,这样就会造成反向代理时部分无法进行反向代理,可能说起来大家无法理解,这里举个例子:

    我的服务器所有项目入口都是https,443端口,如果我电脑上有多个对外项目,并且他们有用不同主页,这时我们从443端口进入后就要分别转发而不能直接从根目录转发,比如project1就要从/project1转发,jenkins就要从/jenkins转发,但是上面jenkens并没有/jenkins,所以我们只能这么转发:https://<域名>/jenkins转到http://<域名>:8080/,表面上是成功了,但是在http://<域名>:8080/中还会引用很多静态文件,比如http://<域名>:8080/static/…………,当然由于nginx的结果,浏览器得到的是https://<域名>/static/……,此时浏览器会通过这个链接去获取静态文件,由于我们的nginx中只配置了对/Jenkins的转发,而/static不会被拦截转发,这样的结果就是浏览器获取不到http://<域名>:8080/static/…………的内容,这样会有什么结果呢,如果这个静态文件是css,那么浏览器上的页面就没有了样式,如果这个静态文件是js,那么浏览器上的页面就没有了动态效果,那对于这个问题怎么解决了,最直接的方法就是,尽然nginx没有转发/static,那就加一条就行了,这样就解决了,但是一个网站可能有很多这样类似的操作,比如有/static,/abc,/aaa等等,我们在nginx中配置工程量会很大,另一种方式直接nginx拦截/,则所有的url都会被转发到8080端口,这样的话,这个Jenkins得到了解决,但是对其他项目的发布是会有很大影响的,所以最好的方式还是Jenkins的url从http:// :8080/改成http:// :8080/Jenkins,那么Jenkins所有连接都会走/Jenkins,那么配一个转发即可,说了这么多就是为了说明为什么我们要改Jenkins的url,接下来怎么改呢:

    Jenkins分两种安装,一种以service方式安装,另一种方式为下载源码,通过启动war来启动,第二种war的方式比较简单,在每次启动Jenkins项目的时候带上—prefix=/jenkins参数即可,前一种其实也比较简单,但是网上找了半天没有解决方案,摸索了好久才自己捣鼓出来:

    修改jenkins的配置文件,我的配置文件为etc/sysconfig/jenkins,配置文件中有很多配置项,比如你要改Jenkins端口,修改配置JENKINS_PORT=“8080"即可,而我们这里要修改的最后一项JENKINS_ARGS=”",默认配置为空的,我们这里要加上一点内容:JENKINS_ARGS="–prefix=/jenkins",这个配置就是把配置内容在Jenkins启动时植入Jenkins中,即为启动时带上我们的配置,这里我们设置的—prefix=/jenkins就是在url中加上前缀/jenkins,原来的访问链接http://<域名>:8080就变成了http://<域名>:8080/jenkins了。

发布了39 篇原创文章 · 获赞 9 · 访问量 1005

猜你喜欢

转载自blog.csdn.net/qq_30095631/article/details/103795666
今日推荐