一尘不染

Windows 10上针对Jenkins的NGINX反向代理

jenkins

因此,我查看了有关该主题的所有教程,但没有任何效果。我在Windows
10专业版上有一个JENKINS实例,在Nginx上有一个centos。我想将NGINX用作Jenkins的反向代理,以具有https并使其可从Internet访问。我当前的配置是:

    server {
listen 80;
listen [::]:80;
server_name build.test.com;

access_log  /var/log/nginx/log/build.test.com.access.log  main;
error_log  /var/log/nginx/log/build.test.com.error.log;

    location ^~ /jenkins/ {

            proxy_pass http://192.X.X.X:8080/;
            proxy_redirect      http://192.X.X.X:8080 http://build.test.com;

            sendfile off;

            proxy_set_header   Host             $host:$server_port;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_max_temp_file_size 0;

            #this is the maximum upload size
            client_max_body_size       10m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;

            proxy_temp_file_write_size 64k;

            # Required for new HTTP-based CLI
            proxy_http_version 1.1;
            proxy_request_buffering off;
            proxy_buffering off; # Required for HTTP-based CLI to work over SSL
      }
    }

(我替换了真实的URL和IP。)但这给了我502错误的网关。出现以下错误:连接到上游时,connect()到192.XXX:8080失败(13:权限被拒绝),客户端:192.168.5.254,服务器:build.test.com,请求:“
GET / jenkins HTTP / 1.1” ,上游:“ http://192.XXX:8080/
”,主机:“ build.test.com

但是在我的本地网络上,当我尝试使用http://192.XXX:8080/ URL
访问服务器时,它可以正常工作。任何想法 ?

谢谢


阅读 373

收藏
2020-07-25

共1个答案

一尘不染

进行一些研究表明,这很可能是CentOS(尤其是SELinux)内部的问题。SELinux可能会在许多地方导致该问题。但是,这可能是一个很好的起点:

我遇到了类似的问题,使Fedora20,Nginx,Node.js和Ghost(博客)正常工作。原来我的问题是由于SELinux造成的。

这应该可以解决问题:

setsebool -P httpd_can_network_connect 1

细节
我检查了SELinux日志中的错误:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied

并发现运行以下命令解决了我的问题:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp

参考文献:

http://blog.frag-gustav.de/2013/07/21/nginx-selinux-me-mad/

https://wiki.gentoo.org/wiki/SELinux/Tutorials/Where_to_find_SELinux_permission_denial_details

http://wiki.gentoo.org/wiki/SELinux/Tutorials/Managing_network_port_labels

http://www.linuxproblems.org/wiki/Selinux

检查SELinux日志,以找出如果上述方法无济于事,为什么会抛出嘶哑的效果。

2020-07-25