我有一个Nexus Repository Manager OSS 3.0作为私人码头注册表运行在NGINX后面。我的Docker客户端(不是官方的Docker客户端)期待200 OK
和一个空的JSON字符串{}
从/v2/
返回。我遇到的问题是,Nexus返回200 OK
但是一个空字符串。NGINX位置指令相同的位置
我的解决方法是让NGINX返回一个文件,其中包含一个空的JSON字符串/v2/
请求和代理/v2/*
请求到Nexus。
server {
listen 443 ssl;
server_name nexus.example.com;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
location = /v2/ {
root /home/ubuntu/www;
index empty.json;
}
location /v2/ {
proxy_pass http://localhost:5000;
proxy_set_header Host $http_host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
}
}
我希望它可以工作,但它会将所有的流量(/v2/, /v2/_catalog, /v2/myimage/manifests/latest
等)的proxy_pass。我怎样才能让/v2/
请求转到位置来切断empty.json
文件?
谢谢你,这就是所有的意义世界!我提出了你提出的第一个解决方案,它效果很好。 –