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

웹개발

번호 제목 글쓴이 날짜 조회수
82 [PHP] empty vs is_null vs is_set 비교 최고관리자 09-11 1,608
81 [Font] Every Font Awesome 4.7.0 Icon, CSS Class, & Unicode 최고관리자 08-19 1,620
80 [PHP] 문자열을 구분자로 구분하여 배열로 만들때 whitespace trim시키기 최고관리자 07-29 1,580
79 [PHP] $_SERVER['SERVER_NAME'] vs $_SERVER['HTTP_HOST'] 최고관리자 07-23 1,974
78 [css] Layout을 제대로 하고 싶다면 Flex 와 Grid를 배워보자 최고관리자 07-20 2,000
77 [PHP] define 중복으로 인한 Internal Server Error 500 최고관리자 07-16 1,512
76 [MySQL] Procedure & View 확인 최고관리자 05-25 1,517
75 [JavaScript] JQuery를 이용한 Drag Drop 리스트 순서변경 최고관리자 05-21 3,297
74 [JavaScript] defer 와 async 최고관리자 05-14 1,592
73 [JavaScript] 홈페이지에 날개를 달자 -2 최고관리자 04-26 1,551
72 [HTML] URL 사용 규칙 최고관리자 03-30 1,583
71 [JS] 자바스크립트 쿠키 클래스 최고관리자 03-19 1,610
70 [MySql] mysql error 메세지 모음 최고관리자 03-11 3,396
69 [PHP] TCP Socket Server +2 최고관리자 03-05 3,456
68 [JS] 문자열로 전송된 함수명을 실행하는 방법 최고관리자 02-26 2,015
67 [Javascript] 홈페이지에 날개를 달자 - Animation & Scrolll 효과 Plugin 최고관리자 02-21 1,565
66 [Form] Submit 버턴 만들어 입력데이타 검사하고 Submit 하기. 최고관리자 01-13 1,557
65 [MySQL] Join 걸어서 Update하기 최고관리자 01-07 1,710
64 [Docker] MedDream DICOM Viewer for Orthanc PACS server 최고관리자 01-05 2,184
63 [Docker] 도커 도메인 여러개 사용하기 (Docker multi Domain) (웹서버 여러개) 최고관리자 01-05 6,397