月度归档:2018年08月

解决Nginx反代80端口出现502错误

问题描述

在上一篇博文中提到,我准备用Nginx反代来实现Jenkins的80端口访问,但是在我设置好反代后,访问80端口,却出现了502错误.Nginx安装方式使用yum install nginx的方式安装, 我的反代配置文件如下:

server {

    listen       80;
    server_name  jenkins.local;
    #access_log /var/log/jenkins_access_log main;
    #error_log  /var/log/jenkins_error_log  debug_http;
    client_max_body_size 60M;
    client_body_buffer_size 512k;
    location / {
        proxy_pass      http://localhost:8080;
        proxy_redirect  off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

可以看到应该是没有任何问题的,reloadNginx也没有报错,经过查看Nginx日志文件/var/log/nginx/error.log,发现Nginx爆出如下权限问题:

2018/08/28 22:52:49 [error] 13213#0: *8 no live upstreams while connecting to upstream, client: 10.0.0.1, server: jenkins.local, request: "GET / HTTP/1.1", upstream: "http://localhost/", host: "jenkins.local"

经过搜索,发现有个博主给出了关闭SELinux的解决方案,尝试后问题成功解决.使用命令getsebool -a |grep httpd_can_network_connect 查看返回结果httpd_can_network_connect --> off发现httpd无网络权限,
setsebool -P httpd_can_network_connect 1 开启权限.
有关SELinux请自行谷歌百度,它是个Linux的安全子系统.

参考

http://blog.codingplayboy.com/2017/05/22/nginx-502-bad-gateway/

解决Jenkins安装完成登陆后显示空白页面

问题描述

随着上次解决Jenkins服务状态为Active: active (exited)的问题后,又遇到新的问题.
再把Jenkins端口修改到80后,Jenkins的登录页面可以正常打开,但是一旦登录你的账号,就会显示空白页面,页面标题是Jenkins wizard,除非访问http://jenkins.local/restart或者其他URL带有后缀的页面才能显示东西,且功能正常.

问题解决

在网上寻找一番后,有人说是权限问题,但是我在Jenkins的config.xml中把权限禁用掉也无用,也有人说是插件冲突,同样,我直接禁用所有插件,一样没有效果. 最后有人提到是因为端口如果低于1000的话是会出现问题的,因为1000以内是系统服务或者其他软件的保留端口. 这一点我明白,可是我使用的就是web服务,80端口,道理上讲应该没问题. 最后我尝试把端口修改回8080后,Jenkins恢复正常,随即解决了问题,如果想使用80端口,可以用Nginx反代.

参考

https://www.youtube.com/watch?v=7DE_f3zX1RM

Centos7启动Jenkins服务状态Active: active (exited)的问题解决

问题描述

因为需要准备Kale项目, 所以在本地的VMware中部署了一套测试环境和持续构建. 其中CI选定的是Jenkins. 我使用的是Centos1804版本,是博文发表时候的最新版本,安装Jenkins直接使用yum来安装,JDK版本为OpenJDK1.8.
安装完成后,添加到服务并且设置开机启动,我在本地设置了host,所以不需要使用8080端口访问Jenkins,所以我在/etc/sysconfig/jenkins中修改端口号为80, 之后使用systemctl restart jenkins重启Jenkins,发现重启命令不报错,但是服务运行状态为Active: active (exited).

[root@jenkins ~]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: active (exited) since Sun 2018-08-26 23:03:42 CST; 2h 14min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 986 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/jenkins.service
           └─1387 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true ...

Aug 26 23:03:41 jenkins.local systemd[1]: Starting LSB: Jenkins Automation Server...
Aug 26 23:03:41 jenkins.local runuser[1007]: pam_unix(runuser:session): session opened for user r...=0)
Aug 26 23:03:42 jenkins.local jenkins[986]: Starting Jenkins [  OK  ]
Aug 26 23:03:42 jenkins.local systemd[1]: Started LSB: Jenkins Automation Server.
Hint: Some lines were ellipsized, use -l to show in full.

问题解决

随后在google上寻找一番无果,终于在配置文件中看到如下:

# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="jenkins"

在修改过配置文件后,需要重新设定相应的权限Jenkins才可以正常运行,于是修改JENKINS_USER="jenkins"root后,问题得到解决.