Artifactory坏网关错误

时间:2015-12-21 19:59:20

标签: nginx docker reverse-proxy

我正在尝试将artifactory用作docker注册表。但推送docker图像会出现Bad Gateway错误。

以下是我的nginx配置

upstream artifactory_lb {
        server artifactory01.mycomapany.com:8081;
        server artifactory01.mycomapany.com:8081 backup;
        server myLoadBalancer.mycompany.com:8081;
}

log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name  to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time';

server {
        listen 80;
        listen 443  ssl;
        client_max_body_size 2048M;
        location / {
                proxy_set_header Host $host:$server_port;
                proxy_pass http://artifactory_lb;
                proxy_read_timeout 90;
        }
        access_log /var/log/nginx/access.log upstreamlog;
        location /basic_status {
                stub_status on;
                allow all;
                }
}

# Server configuration

server {
    listen 2222 ssl default_server;
    ssl_certificate  /etc/nginx/ssl/self-signed/self.crt;
    ssl_certificate_key /etc/nginx/ssl/self-signed/self.key;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    server_name myloadbalancer.mycompany.com;
    if ($http_x_forwarded_proto = '') {
        set $http_x_forwarded_proto  $scheme;
    }

    rewrite ^/(v1|v2)/(.*) /api/docker/docker_repo/$1/$2;
    client_max_body_size 0;
    chunked_transfer_encoding on;
    location / {
    proxy_read_timeout  900;
    proxy_pass_header   Server;
    proxy_cookie_path ~*^/.* /;
    proxy_set_header   X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host;
    proxy_set_header    X-Forwarded-Port  $server_port;
    proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
    proxy_set_header    Host              $http_host;
    proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for
    proxy_pass http://myloadbalancer.company.com:8081/artifactory/;

    }

}

我用来推送图片的docker命令是

docker push myloadbalancer:2222/image_name

Nginx错误日志显示以下错误24084 connect()失败(111:连接被拒绝),同时连接到上游,客户端:internal_ip,server :, request:“GET / artifactory / inhouse HTTP / 1.0”,上游:“http :/ internal_ip:8081 / artifactory的/回购“

我错过了什么?

1 个答案:

答案 0 :(得分:0)

可以通过将代理传递更改为指向任何上游服务器来解决此问题。

proxy_pass http://artifactory_lb;