docker 개인 registry 에 nginx 역방향 대 리 를 설정 합 니 다.

6808 단어
회사 의 Docker 개인 registry 는 이미 구축 되 었 고 공식 registry image 로 쉽게 구축 되 었 습 니 다.지금 은 외부 네트워크 에서 접근 할 수 있 도록 nginx 의 역방향 에이전트 로 풀 어 주 는 것 입 니 다.나의 이전 블 로 그 는 nginx 역방향 대 리 를 어떻게 설정 하 는 지 에 대해 이야기 했다.그래서 본 고 는 주로 내 가 사용 하 는 과정 에서 만난 문제 와 해결 방법 을 말한다.
이것 은 나의 최초의 nginx 설정 이다.
upstream my_docker_registry  {
    server 192.168.100.48:8443; # registry.renhl.com
}

## START hub.renhl.com ## server { server_name registry.renhl.com; listen 80; listen 443 ssl; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; root /usr/local/nginx/html; index index.html; allow 111.206.238.12; allow 111.206.238.94; deny all; location / { proxy_pass https://my_docker_registry; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ## END hub.renhl.com ##
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

  • 그리고 push image 를 이 registry 에 올 리 기 시 작 했 는데 오류 가 발생 했 습 니 다.
    The push refers to a repository [hub.renhl.com/mediawiki] (len: 1)
    unable to ping registry endpoint https://hub.renhl.com/v0/ v2 ping attempt failed with error: Get https://hub.renhl.com/v2/: x509: certificate is valid for renhl.com, not hub.renhl.com v1 ping attempt failed with error: Get https://hub.renhl.com/v1/_ping: x509: certificate is valid for renhl.com, not hub.renhl.com
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

  • 이 개인 registry 의 ssl 인증 서 를 / etc / docker / certs. d 에 두 었 습 니 다. 오류 가 없 을 겁 니 다.이 설정 을 자세히 보 니 nginx 는 개인 registry 의 ssl 인증 서 를 사용 하지 않 고 자신의 인증서 /etc/nginx/ssl/nginx.crt 를 사용 한 것 을 발 견 했 습 니 다.문 제 는 nginx 의 ssl 인증 서 를 개인 registry 의 ssl 인증서 로 바 꿔 야 합 니 다.
    #     registry ssl  
    ssl_certificate /opt/renhl_com_docker_registry/certs/registry_renhl_com.crt;
    ssl_certificate_key /opt/renhl_com_docker_registry/certs/registry_renhl_com.key;
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

  • 자, nginx 를 다시 시작 하고 Push 를 해 보 세 요. 또 잘못 보 고 했 습 니 다.
    The push refers to a repository [registry.renhl.com/mediawiki] (len: 1)
    846b3100eaa8: Buffering to Disk dial tcp: lookup my_docker_registry: no such host
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

  • 이 유 는 분명 합 니 다. 반대 대리 가 mydocker_registry, host 로 클 라 이언 트 에 보 냈 습 니 다. 역방향 프 록 시 를 올 바른 host 로 설정 해 야 합 니 다.다음 줄 을 nginx 설정 에 추가 합 니 다.
    proxy_set_header        Host            $host;
  • 1
  • 1

  • nginx push 를 다시 시작 해 보 세 요. 오류 가 발생 했 습 니 다.
    Error parsing HTTP response: invalid character '\r
    413 Request Entity Too Large<span class="hljs-xmlDocTag"/>\r
    \r

    413 Request Entity Too Large

    \r

    nginx/1.4.6 (Ubuntu)
    \r
    \r

    좋은 웹페이지 즐겨찾기