[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
자동등록방지 숫자입력

기타

번호 제목 글쓴이 날짜 조회수
53 [Linux] local-hos-names 파일 - Configuration local-host-names 최고관리자 08-18 1,044
52 [Ubuntu] Mysql 외부접속이 안될 때 최고관리자 08-17 1,088
51 [Ubuntu] PHP PHP 7.4.22를 깔았는데 소스가 보이는 경우 최고관리자 08-17 2,063
50 [nginX] Nginx 413 Request Entity Too Large 에러 해결하기 최고관리자 07-21 1,141
49 [MySql] 성능최적화 최고관리자 07-06 1,031
48 [PHP] CentOS PHP Composer 설치 최고관리자 06-23 1,188
47 [Linux] Disk 및 폴더 용량 정보 확인 최고관리자 06-12 1,181
46 [Linux] find 명령어로 오래된 파일 삭제하기 최고관리자 06-12 2,770
45 [Git Server] [rejected] master -> master (fetch first) 에러해결 최고관리자 06-09 1,130
44 [Git Server] Interactive git shell is not enabled. 문제 해결 최고관리자 06-09 1,996
43 [IntelliJ] 많이 쓰이는 단축키 최고관리자 05-26 1,059
42 [IntelliJ] 단축키 최고관리자 05-24 1,222
41 [Flutter] 유용한 블로그 최고관리자 05-12 1,099
40 [구글맵] 다중마커 표시 최고관리자 05-05 1,460
39 [Firmware] STM8 STVD gdi-error 40201 문제 해결 최고관리자 04-03 1,800
38 [Git] Local PC에서 소스폴더에서 Git Hub에 업로드 하는 방법 최고관리자 03-13 1,173
37 [Linux] netstat - 네트워크 통계정보 최고관리자 01-18 1,325
36 [Docker] Nginx 를 사용한 SubDomain(서브도메인) 분기 최고관리자 01-17 3,174
35 [docker] 도커 컴포즈란? 예제 및 기본 사용법 (docker-compose) 최고관리자 01-15 1,327
34 [docker] docker-compse를 활용하여 완벽한 개발 환경 구성하기 최고관리자 01-15 1,258