programing

도커 VHost의 리버스 프록시로서의 Nginx

minimums 2023. 3. 14. 21:32
반응형

도커 VHost의 리버스 프록시로서의 Nginx

현재 자체 웹 서버/서비스를 구축하려고 하는데 다음과 같은 것을 설정하려고 합니다.

  • 메인 "블로그"용 워드프레스
  • Git 저장소용 Gitlab
  • 데이터 스토리지를 위한 자체 클라우드

Docker를 사용하여 웹 서버의 포트:81에 매핑하여 완벽하게 작동하는 작은 gitlab을 실행하고 있습니다.

도커 이미지는 항상 특정 포트 번호에 바인딩되어 있기 때문에 기억하기가 쉽지 않기 때문에 다음과 같은 작업을 하고 싶습니다.

git.mydomain.com for gitlab
mydomain.com (no subdomain) for my blog
owncloud.mydomain.com for owncloud

제가 알기로는 nginx를 사용하기로 한 이 경우 리버스 프록시가 필요합니다.그래서 이렇게 세팅해놨어요.

http {
include       mime.types;
default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

server {
    listen       80;
    server_name  mydomain.com;
    location / {
            proxy_pass http://localhost:84;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
server {
    listen 80;
    server_name git.mydomain.com;

    location / {
        proxy_pass http://localhost:81;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

이렇게 하면 git.mydomain.com을 완벽하게 실행하고 있지만 워드프레스에 빈 웹페이지만 표시됩니다.내 DNS는 다음과 같이 설정됩니다.

Host   Type   MX Destination
*      A      IP
@      A      IP
www    CNAME   @

내가 너무 멍청해? 아님 무슨 일이야?

당신의 질문이 Nginx 프록시 설정에 관한 것이라는 것을 알고 있습니다만, 이러한 도커 컨테이너를 역프로그래밍하기 위한 설정을 자동적으로 전개하는 Nginx 도커 컨테이너의 셋업 방법에 대한 자세한 링크를 제공하는 것이 도움이 될 것이라고 생각합니다.즉, 역방향 프록시를 실행한 후 다른 컨테이너를 실행하면 Nginx 컨테이너는 호스트 이름을 기반으로 트래픽을 다른 컨테이너로 라우팅합니다.

기본적으로 프록시 컨테이너를 풀링하여 에 설정된 몇 가지 파라미터를 사용하여 실행합니다.docker run명령을 누른 다음 프록시할 다른 컨테이너를 불러옵니다.도커를 설치하고 nginx-proxy 이미지를 가져오면 프록시를 시작하기 위해 사용하는 특정 명령어는 다음과 같습니다.

docker run -d --name="nginx-proxy" --restart="always" -p 80:80 \ -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy

이제 프록시가 실행 중입니다.주소를 브라우저로 가리키면 Nginx 502 또는 503 오류가 반환됩니다.아직 아무것도 듣고 있지 않기 때문에 오류가 발생합니다.다른 컨테이너를 부팅하는 것은 매우 쉽습니다. 다음과 같습니다.

docker run -d --name="example.com" --restart="always" \ -e "VIRTUAL_HOST=example.com" w3b1x/mywebcontainer

그거-e "VIRTUAL_HOST=example.com"Nginx 프록시 라우팅 트래픽을 시작하는 컨테이너로 전송하기만 하면 됩니다.

Docker를 시작할 때부터 이 방법을 사용해 왔습니다.이런 상황에서는 매우 편리합니다.링크된 기사에는 단계별 설명과 필요한 모든 정보가 나와 있습니다.자세한 정보(특히 이 셋업에서의 SSL 실장에 관한 정보)가 필요한 경우는, 이 소프트웨어의 git 저장소를 확인해 주세요.

정상으로 nginx 설정은 nginx를 누르고 .localhost:xx이렇게 해야 .gatewayip:xx 더 나은 ★★★★★★★★★ ★★★★target_private_ip:80.

를 쉽게 할 수 있는 를 이 your your your your your로 입니다.--link스크립트를 "nginx하여 "origin" "inginx"를 "ip"로 설정합니다.sed -i환경으로부터 얻을 수 있는 가치를 가지고 있습니다.

언급URL : https://stackoverflow.com/questions/26816076/nginx-as-reverse-proxy-for-docker-vhosts

반응형