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