[Docker] 도커 도메인 여러개 사용하기 (Docker multi Domain) (웹서버 여러개)

처음에 도커 이해가 안되는게, 


콘테이너 생성할때, 포트로 설정을 해야하는데, 


웹 서버들 80을 디폴트로 사용하는데,


80포트는 한번 사용하면, 다른 컨테이너에서 사용할수가 없는거다.


근데, 한 서버에 여러 도메인을 관리하면.....


컨터이너 별로 만들어서 사용하는데, 포트는 80 중복이 안되는데...어떻게 하라는거냐?????


이 개념이 이해가 안되니까, 웹에서 Docker를 사용하는게 한개밖에 안되면...너무 빡센거다.


그래서, 찾은 방법이 역프록시 방법이다.


예로, 호스팅 업체에는 


밑에 2개 도메인을 다 내 서버에 연결해놓은다. 

www.tyson1.co.kr 

www.tyson.2co.kr 


그리고, 서버에서 웹서버 콘테이너를 2개 만들고, 포트를 하나는 8081, 8082 이렇게 했다고 치면, 


아파치설정에서 가상호스트세팅에서, * 80 으로 들어오는것을 


reverse proxy (역프록시)로 


www.tyson1.co.kr 로 들어오는거는 localhost:8081  로 가게 하고,


www.tyson2.co.kr 로 들어오는거는 localhost:8082  로 가게 하면 되는거다.



리눅스 가상호스트 찾아보고,


아파치 설정에서, 


<VirtualHost *:80>

    ServerAdmin test@test.com

    DocumentRoot /var/www/html/

    ServerName www.tyson1.com

    ProxyPass / http://localhost:8081/

    ProxyPassReverse / http://localhost:8081/

    ErrorLog "logs/error_log"

    CustomLog "logs/access_log" common

</VirtualHost>


위에처럼, 


    ProxyPass / http://localhost:8081/

    ProxyPassReverse / http://localhost:8081/

두 부분을 추가해주던지 하면 된다.




이 방법을 못 찾으니까, 도커를 처음에는 웹서버 하나만 올릴수있는거면 왜 사용하지라는 고민을 많이했다.



그러다가, 도커에 가상호스트 구축 및 서브 도메인 연결하는 콘테이너가 있고, 사용하기 간단하게 만들어 놓은것을 찾았다.


밑에 두 블로그를 참조한거다.



https://blog.youngbin.kim/2017/07/10/docker-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EA%B0%80%EC%83%81-%ED%98%B8%EC%8A%A4%ED%8A%B8virtual-host-%EA%B5%AC%EC%B6%95-%EB%B0%8F-%EC%84%9C%EB%B8%8C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0/



https://zeewhon.blogspot.com/2017/06/blog-post_13.html



  1. docker pull jwilder/nginx-proxy
  2. docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
  1. docker run -d -e VIRTUAL_HOST=blog.youngbin.kim wordpress:latest


프록시 서버 콘테이너를 제일 먼저 생성해서, 80포트는 무조건 저걸 거치게 하고,


다음 콘테이너들 (실제 웹서버로 돌릴 콘테이너들 생성할때, VIRTUAL_HOST= 세팅에 도메인명 넣어주면, 


저 콘테이너로 역프록시를 자동 세팅해주는거다.


완전 대박이다!!


이게 해결되니까, 이제 도커를 엄청 이용할 수 있을거 같다.!!



그리고, 참고로, 난 시놀로지Nas에서 도커를 생성해서 웹서버 2개를 돌렸는데, 도커에서 80를 못써서 어떻게 할지 찾았는데,


시놀로지에서도 역프록시 세팅을 해서 여러개 올릴 수 있는 방법을 찾았다.


그 방법도 시놀로지 카테고리에 작성해 놓겠다.

(http://tyson.tistory.com/135)



참고 블로그

http://m.assayo.com/board_view.html?board=forum_nas&pid=19139



출처: https://tyson.tistory.com/133 [TysonWorld] 

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

웹개발

번호 제목 글쓴이 날짜 조회수
62 [Linux] CentOS postfix 메일서버 설치 및 설정(sendmail 설정) 최고관리자 12-23 1,366
61 [Ubuntu] 인터넷 연결이 안될 때 최고관리자 12-07 1,183
60 [Apache SSL] Ubuntu 인증서(전자서명) 최고관리자 11-24 1,287
59 [Ubuntu] ssl 임시 인증서 준비 및 발급받기 최고관리자 11-23 1,663
58 [Ubuntu] apache2 환경설정 생성기 최고관리자 11-23 2,887
57 [Ubuntu] apache2 설치 최고관리자 11-23 1,186
56 [vi 편집기] 단축키 최고관리자 11-23 1,111
55 [유용한 블로그] ^^.^^ 최고관리자 11-19 1,120
54 [JS] TimelineJS - 시간의 흐름을 네비게이션화 최고관리자 11-19 1,189
53 [JS] 스크롤을 감지하여 사이트의 헤더를 보이거나 숨기기 최고관리자 11-19 1,320
52 [Linux] NAS Mount 최고관리자 11-12 1,131
51 [React] React활용 최고관리자 11-10 1,168
50 [PHP] exec 실행에 대한 응답코드 최고관리자 11-02 1,516
49 [Linux] Shell Script 최고관리자 10-26 1,424
48 [폰트] 폰트 찾기 사이트 최고관리자 10-21 1,229
47 [통신] Socket packet test Program 최고관리자 10-20 1,713
46 [통신] 맥용 Socket Test Program 최고관리자 10-20 1,508
45 [통신] Mac에서 TCP Socket통신 테스트 하기 최고관리자 10-20 2,777
44 [NginX] 504 Gateway Time-out 에러와 해결방법 +1 최고관리자 10-16 24,435
43 [NginX] 설정 최고관리자 10-13 1,452