[Docker] 도커 도메인 여러개 사용하기 (Docker multi Domain) (웹서버 여러개)
처음에 도커 이해가 안되는게,
콘테이너 생성할때, 포트로 설정을 해야하는데,
웹 서버들 80을 디폴트로 사용하는데,
80포트는 한번 사용하면, 다른 컨테이너에서 사용할수가 없는거다.
근데, 한 서버에 여러 도메인을 관리하면.....
컨터이너 별로 만들어서 사용하는데, 포트는 80 중복이 안되는데...어떻게 하라는거냐?????
이 개념이 이해가 안되니까, 웹에서 Docker를 사용하는게 한개밖에 안되면...너무 빡센거다.
그래서, 찾은 방법이 역프록시 방법이다.
예로, 호스팅 업체에는
밑에 2개 도메인을 다 내 서버에 연결해놓은다.
그리고, 서버에서 웹서버 콘테이너를 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
- docker pull jwilder/nginx-proxy
- docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
- 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]