Docker私库安装手记,解决私库pull push需要不同端口

2019-12-11  本文已影响0人  古刹飞鹰

一、主要解决的问题

解决前

解决后

二、步骤

upstream nexus_docker_get {
    server 127.0.0.1:16300;
}

upstream nexus_docker_put {
    server 127.0.0.1:16301;
}
server
{
    listen 80;
    listen 443 ssl http2;
    ssl_certificate /dataStore/webServers/nginx/cert/1_docker.v246.com_bundle.crt;
    ssl_certificate_key /dataStore/webServers/nginx/cert/2_docker.v246.com.key;
    #ssl on;
    port_in_redirect off;
    server_name docker.v246.com;
    proxy_set_header "Host" $host;
    # 设置默认使用推送代理
    set $upstream "nexus_docker_put";
    # 当请求是GET,也就是拉取镜像的时候,这里改为拉取代理,如此便解决了拉取和推送的端口统一
    if ( $request_method ~* 'GET') {
        set $upstream "nexus_docker_get";
    }
    # 只有本地仓库才支持搜索,所以将搜索请求转发到本地仓库,否则出现500报错
    if ($request_uri ~ '/search') {
        set $upstream "nexus_docker_put";
    }
    location / {
        client_max_body_size 1024m;
# 以下配置用于申请ssl证书,验证域名用的        
#       root /dataStore/web/docker/;
#        index index.html;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://$upstream;
    }
    access_log logs/${host}__access.log;
}

参考资料:https://zhang.ge/5139.html

参考资料:https://my.oschina.net/u/3746745/blog/1811571

上一篇 下一篇

猜你喜欢

热点阅读