Docker를 사용하여 nginx를 Gogs의 역방향 프록시로 실행하려고 합니다. 먼저 gogs를 설정하고 그것이 렌더링하는 웹 페이지를 볼 수 있습니다.
하지만 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.2
Gogs 페이지가 나올 것으로 예상했는데 "Welcome to NGINX" 페이지만 보입니다.
아이디어?
티아,
올레
답변1
답변:
gogs.conf
Docker 볼륨의 명명된 파일에 에이전트 구성을 배치 하고 다음과 같이 매핑합니다.
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/
따라서 의 구성은 포함되지 않습니다.