重定向到无效的URI。Jenkins在Nginx后面的docker容器中

重定向到无效的URI。Jenkins在Nginx后面的docker容器中,docker,nginx,jenkins,Docker,Nginx,Jenkins,已成功从官方Jenkins hub中提取图像,并使用以下参数运行容器 docker run -d --name=jenkins -p 8080:8080 -p 50000:50000 -e JENKINS_OPTS="--prefix=/build" -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts 另外,我的主机上安装了Nginx(不是容器!) Nginx的使用说明 upstream jenkins {

已成功从官方Jenkins hub中提取图像,并使用以下参数运行容器

docker run -d --name=jenkins -p 8080:8080 -p 50000:50000 -e JENKINS_OPTS="--prefix=/build" -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
另外,我的主机上安装了Nginx(不是容器!

Nginx的使用说明

upstream jenkins {
        server localhost:8080;
        keepalive 16;
}

server {
        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot

        server_name example.com www.example.com;

        ignore_invalid_headers off;

        location /build/ {
                proxy_pass http://jenkins;
                proxy_http_version 1.1;
                proxy_redirect default;

                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Connection "";
                proxy_set_header X-Forwarded-Proto: $scheme;

                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;
        }

        access_log /var/log/nginx/jenkins.access.log;
        error_log /var/log/nginx/jenkins.error.log;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
        listen 80;
        return 301 https://example.comk$request_uri;
}
试图通过电话联系詹金斯。它要求我输入一个初始管理员密码。成功提交后,它会给我这个页面

URL是


我试图添加前缀。。。尝试重新启动这两个程序,但没有任何更改。

只需将设置代理\u头字符串放在代理\u过程之前即可。比如

location /build/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Connection "";
            proxy_set_header X-Forwarded-Proto: $scheme;

            proxy_pass http://jenkins;
            proxy_http_version 1.1;
            proxy_redirect default;

            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;
    }

只需将设置代理\u头字符串放在代理\u过程之前。比如

location /build/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Connection "";
            proxy_set_header X-Forwarded-Proto: $scheme;

            proxy_pass http://jenkins;
            proxy_http_version 1.1;
            proxy_redirect default;

            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;
    }