Nginx 도커 프록시 컨테이너가 리디렉션되지 않습니까?

Nginx 도커 프록시 컨테이너가 리디렉션되지 않습니까?

다음 Nginx 역방향 프록시 구성을 Docker 이미지에 굽으려고 합니다.

    server {
        listen 80;
        server_name 203.0.113.2;

        proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

        location / {
            proxy_pass http://203.0.113.1:3000;
        }
    }

현재는 볼륨에 넣고 다음과 같이 매핑합니다.

-v nginx-data:/etc/nginx/conf.d/

이것은 작동하고 시작 시 컨테이너는 역방향 프록시로 실행되지만, 베이킹하면 다음과 같습니다.

도커파일

  FROM nginx
  COPY gogs.conf /etc/nginx/conf.d/gogs.conf

다음과 같이 이미지에서 컨테이너를 시작합니다.

docker run --name gogs-nginx-container -d gogs-nginx

마지막으로 지정된 IP 주소를 통해 액세스하면 http://172.17.0.3/"Nginx에 오신 것을 환영합니다" 페이지가 표시되지만 203.0.113.1:3000.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변1

Nginx는 실행되는 IP 주소에 "민감"합니다. 내 구성에서는 server_name 203.0.113.2;컨테이너가 시작될 때 해당 IP 주소에서 시작되어야 하며 그렇지 않으면 프록시 구성이 실행되지 않도록 이를 설정했습니다. 따라서 이 명령은 트릭을 수행합니다.

docker run --name gogs-nginx-proxy --net mk1net --ip 203.0.113.2 -d gogs-nginx

관련 정보