다음 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