我已经尝试了至少六个例子,说明如何使NGINX与Jenkins一起工作。我最近的NGINX配置基于以下示例:
https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Nginx
詹金斯一直在说It appears that your reverse proxy set up is broken.我希望自己能做的事,希望我能有人发现问题出在哪里,因为我花了数小时试图解决这个问题,但无济于事。
谢谢!
upstream cicd {
        keepalive 32;
        server 127.0.0.1:8080;
}
server {
        listen 443 ssl;
        listen [::]:443 ssl ipv6only=on;
        server_name cicd.domain.com;
        root /var/run/jenkins/war/;
        access_log /var/log/nginx/jenkins/access.log;
        error_log /var/log/nginx/jenkins/error.log;
        ssl_certificate /etc/letsencrypt/live/cicd.domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/cicd.domain.com/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
        #static files
        location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" {
                rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /$1 last;
        }
        #user content
        location /userContent {
                root /var/lib/jenkins/;
                if (!-f $request_filename){
                        rewrite (.*) /$1 last;
                        break;
                }
                sendfile on;
        }
        #cicd
        location @cicd {
                sendfile off;
                proxy_pass              http://cicd;
                proxy_redirect          http://localhost:8080 https://cicd.domain.com;
                proxy_http_version      1.1;
                proxy_set_header        Host                    $host;
                proxy_set_header        X-Real-IP               $remote_addr;
                proxy_set_header        X-Forwarded-Host        $host;
                proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto       $scheme;
                proxy_max_temp_file_size 0;
                client_max_body_size            10m;
                client_body_buffer_size         128k;
                proxy_connect_timeout           90;
                proxy_send_timeout              90;
                proxy_read_timeout              90;
                proxy_buffering                 off;
                proxy_request_buffering         off;
                proxy_set_header Connection     "";
        }
        #optional
        location / {
                if ($http_user_agent ~* '(iPhone|iPod)') {
                        rewrite ^/$ /view/iphone/ redirect;
                }
                try_files $uri @cicd;
        }
}
这不是NGINX问题。
在Jenkins内部,您需要配置Jenkins URL。如果未正确设置,则会收到您观察到的错误。
检查Jenkins->管理Jenkins->配置系统=> Jenkins URL。
对我来说,URL 配置正确。我必须更改 Nginx 配置以包含一些额外的标头:
server {
    listen 443 ssl;
    
    server_name  my-subdomain.main-domain.com; # this is the url domain of the proxy (Load balancer in front of Jenkins)
    
    ssl_certificate /etc/nginx/certs/ssl_certificate.crt;
    ssl_certificate_key /etc/nginx/certs/ssl_key.pem;
    
    location / {
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host my-subdomain.main-domain.com; # this is the url domain of the proxy (Load balancer in front of Jenkins)
        proxy_pass http://${JENKINS_PRIVATE_IP}:${JENKINS_PORT};
    }
}
| 归档时间: | 
 | 
| 查看次数: | 1364 次 | 
| 最近记录: |