server { listen 80; server_name localhost; #! resolver 127.0.0.11; # This is for docker container name resolver #charset koi8-r; #access_log /var/log/nginx/host.access.log main; # disable any limits to avoid HTTP 413 for large image uploads client_max_body_size 0; # required to avoid HTTP 411: see Issue #1486 (https://github.com/moby/moby/issues/1486) chunked_transfer_encoding on; # required for strict SNI checking: see Issue #70 (https://github.com/Joxit/docker-registry-ui/issues/70) proxy_ssl_server_name on; proxy_buffering off; proxy_ignore_headers "X-Accel-Buffering"; location / { root /usr/share/nginx/html; index index.html index.htm; } location /v2 { # Do not allow connections from docker 1.5 and earlier # docker pre-1.6.0 did not properly set the user agent on ping, catch "Go *" user agents if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) { return 404; } # To add basic authentication to v2 use auth_basic setting. auth_basic "Registry realm"; auth_basic_user_file /etc/nginx/auth/read-write.htpasswd; # For requests that *aren't* a PUT, POST, or DELETE limit_except PUT POST DELETE { auth_basic_user_file /etc/nginx/auth/read-only.htpasswd; } proxy_pass http://registry:5000; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }