Docker에서 NGINX를 역방향 프록시로 실행하시나요?

Docker에서 NGINX를 역방향 프록시로 실행하시나요?

Docker를 사용하여 nginx를 Gogs의 역방향 프록시로 실행하려고 합니다. 먼저 gogs를 설정하고 그것이 렌더링하는 웹 페이지를 볼 수 있습니다.

http://203.0.113.1:3000/

하지만 NGINX가 나를 대신하여 포트(3000)를 URL에서 제외할 수 있도록 프록시를 사용하고 싶습니다. 내가 따른 지침은 이 튜토리얼의 NGINX 섹션에서 가져온 것입니다.

https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04

docker에서 작동하도록 하기 위해 nginx-data 볼륨을 생성하고 해당 볼륨에 nginx 구성 파일을 배치하고 이름을 로 지정했습니다 gogs.

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;
    }
}

nginx-data롤 바닥 에 위치합니다 . 다음과 같이 nginx 컨테이너를 시작합니다.

docker run --name docker-nginx -p 80:80 --net mk1net --ip 203.0.113.2 -v nginx-data:/etc/nginx/sites-enabled/ -d nginx

이제 방문하면 203.0.113.2Gogs 페이지가 나올 것으로 예상했는데 "Welcome to NGINX" 페이지만 보입니다.

아이디어?

티아,

올레

답변1

답변:

gogs.confDocker 볼륨의 명명된 파일에 에이전트 구성을 배치 하고 다음과 같이 매핑합니다.

docker run --name docker-nginx -p 80:80 --net mk1net --ip 203.0.113.2 -v nginx-data:/etc/nginx/conf.d/ -d nginx

설명하다:

기본 Ubuntu 설치에서 nginx가 어떻게 구성되어 있는지 이해하기 위해 nginx를 설치 sudo apt-get install nginx하고 구성 파일을 살펴보았습니다 /etc/nginx/nginx.conf. 구성 맨 아래에 다음 두 줄이 포함되어 있습니다.

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

그래서 이를 docker 컨테이너의 nginx 구성과 비교했습니다.

docker run --rm -it nginx /bin/ash
root@9475f1693539: cat /etc/nginx/nginx.conf

구성에는 다음 줄만 있습니다.

include /etc/nginx/conf.d/*.conf;

/etc/nginx/sites-enabled/따라서 의 구성은 포함되지 않습니다.

관련 정보