dnsmasq를 사용하는 Nginx '해결할 수 없음(5: 작업 거부됨)'

dnsmasq를 사용하는 Nginx '해결할 수 없음(5: 작업 거부됨)'

docker, nginx 및 uwsgi를 사용하여 django 사이트를 설정하려고 합니다. 역방향 프록시로 사용되는 nginx docker 컨테이너(ceca-nginx-proxy라고 함)와 다음과 통신하는 또 다른 nginx(ceca-nginx) 컨테이너가 있습니다. uwsgi(ceca-uwsgi), 컬(with)을 사용하여 ceca-nginx 컨테이너에 연결할 수 있고 ceca-uwsgi 컨테이너에서 django 사이트가 실행 중입니다. 문제는 ceca-nginx 프록시를 통해 사이트를 가져오려는 경우입니다. : ceca -nginx-proxy 오류 로그에 이 오류가 수신되었습니다.curl --resolve http://test.ceca.com http://172.17.0.7

ceca-nginx를 확인할 수 없음(5: 작업 거부됨), 클라이언트: 172.17.0.1, 서버: *.ceca.com, 요청: "GET/HTTP/1.1", 호스트: "172.17.0.8"

  • 172.17.0.1은 할당된 도커 IP입니다.
  • *.ceca.com은 ceca-nginx-proxy의 nginx 구성에 정의된 server_name입니다.
  • 172.17.0.8은 ceca-nginx-proxy IP입니다.
  • ceca-nginx-proxy 역방향 프록시의 서버 블록은 다음과 같습니다.

    server {
        listen 80;
        server_name *.ceca.com;
        error_log   /tmp/proxy_error_nginx.log warn;
        access_log  /tmp/proxy_access_nginx.log;
    
        location / {
            set $example ceca-nginx;
            resolver 127.0.0.1;
            proxy_pass http://$example;
        }
    } 
    

    동일한 시스템에서 dnsmasq를 실행하여 /etc/hosts(docker에 연결된 컨테이너의 호스트 이름에서)의 호스트 이름을 다음과 같이 확인했습니다.

    dnsmasq -q -8 /tmp/dnsmasq.log --port 53 -R -u root
    

    dnsmasq.log에서 볼 수 있듯이 호스트 이름은 괜찮지만[1], nginx가 불평하고 "502 Bad Gateway" 페이지를 반환합니다. 누구든지 나를 도와줄 수 있다면 나는 영원히 감사할 것이고 우리가 만난다면 맥주와 양치류를 많이 사줄 것입니다.

    [1]
    
    Jun  6 21:39:47 dnsmasq[321]: query[A] ceca-nginx from 127.0.0.1
    Jun  6 21:39:48 dnsmasq[321]: /etc/hosts ceca-nginx is 172.17.0.7
    Jun  6 21:39:48 dnsmasq[321]: query[AAAA] ceca-nginx from 127.0.0.1
    

관련 정보