[Docker] Nginx 를 사용한 SubDomain(서브도메인) 분기

[Nginx-proxy 이미지 사용]

- docker-compose 를 통한 컨테이너 구축


- 서브도메인을 분기 시켜줄 프록시 컨테이너

* nginx-proxy.yaml


version: '2'
services:
nginx-proxy:
container_name: nginx-proxy
image: jwilder/nginx-proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /home/test/nginx-proxy/log:/var/log/nginx

networks:
default:
external:
name: nginx-proxy



- 기본 웹서버 컨테이너

* nginx-www.yaml


version: '2'
services:
nginx-www:
image: nginx:latest
environment:
- VIRTUAL_HOST=www.domain.com
container_name: nginx-www

networks:
default:
external:
name: nginx-proxy



- 서브도메인을 테스트 할 test 컨테이너 (test 대신 다른 웹서버 이미지를 사용해서 테스트 해야합니다.)

* test.yaml


version: '2'
services:
test-container:
image: test
container_name: test
environment:
- VIRTUAL_HOST=sub.domain.com
- VIRTUAL_PORT=3000

networks:
default:
external:
name: nginx-proxy



- 프록시 컨테이너 내 nginx 설정 파일 확인

/etc/nginx/conf.d/default.conf

~~~
server {
    server_name _; # This is just an invalid value which will never trigger on a real hostname.
    listen 80;
    access_log /var/log/nginx/access.log vhost;
    return 503;
version: '2'
}
upstream www.domain.com {
                ## Can be connected with "nginx-proxy" network
            # nginx-www
            server 192.0.0.1:80;
}
server {
    server_name www.domain.com;
    listen 80 ;
    access_log /var/log/nginx/access.log vhost;
    location / {
        proxy_pass http://www.domain.com;
    }
}
# test.domain.com
upstream test.domain.com {
            ## Can be connected with "nginx-proxy" network
            # test web server container
            server 192.0.0.2:3000;
}
server {
    server_name test.domain.com;
    listen 80 ;
    access_log /var/log/nginx/access.log vhost;
    location / {
        proxy_pass http://test.domain.com;
    }
}



---------------

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

기타

번호 제목 글쓴이 날짜 조회수
33 [docker] Docker Compose 커맨드 사용법 최고관리자 01-14 1,208
32 [docke] 도커 컴포즈 설치 및 사용 최고관리자 01-14 1,191
31 [docker] CentOS7 docker로 설치하기. 최고관리자 01-14 1,092
30 [docker] Docker 를 사용한 가상 호스트 (Virtual Host) 구축 및 서브 도메인 연결 최고관리자 01-13 3,557
29 [docker] 네트워크 이해하기. 최고관리자 01-13 1,159
28 [C++] 장치관리자 정보 최고관리자 12-28 2,327
27 [C#] 장치관리자 목록 추출하기 최고관리자 12-17 2,551
26 [모니터링] 그라파이트와 그라파나로 메트릭스 모니터링 시스템 구축하기 최고관리자 12-02 1,884
25 [docker] 도커 컴포즈를 활용하여 완벽한 개발 환경 구성하기 최고관리자 12-02 1,239
24 [docker] MariaDB + 로컬에 데이터저장소 연결 최고관리자 12-02 1,211
23 [docker] mysql 설치 및 활용 최고관리자 12-02 11,850
22 [네트워크] KT HomeHub SSH접속 설정 최고관리자 11-30 1,164
21 [Linux] 리눅스 포트 명령어 최고관리자 11-30 2,914
20 [Ubuntu] Google Chrome 웹브라우저에서 크롬원격접속 설정오류 고치기 최고관리자 11-24 3,293
19 [Ubuntu] deb, rpm 파일 설치하기 최고관리자 11-24 1,928
18 [Ubuntu] ifconfig가 안될 때 최고관리자 11-24 1,621
17 [Ubuntu] 영문버젼에 한글입력기 설치 최고관리자 11-24 2,235
16 [Ubuntu] Remote Desktop 최고관리자 11-24 1,221
15 [Ubuntu] NVDIA Graphic Driver Install 최고관리자 11-24 1,220
14 [SSL 인증서] 종류와 가격 최고관리자 11-24 1,166