만약 여러개의 도메인을 하나의 서버(머신)에서 가동하는 경우가 많습니다. 이런 경우 서버환경(nginx, apache) 또는 서버측 언어(PHP, Python 등등)에서 설정하여 사용하게됩니다. 이때 nginx에서는 어떻게 설정해야할까요?




# 멀티 도메인을 사용하기 위한 nginx 설정방법 알아보기
만약 아래의 도메인을 사용하는 경우 예를들어보겠습니다. 하나의 도메인만 설정된 경우라면 아래와 같이 설정이 되어 있겠죠. 참고로 nginx 설정파일은 각각 다를 수 있습니다. 경로는 /etc/nginx/에 위치하면 nginx.conf 파일이거나 /site-available/등에 있을 수 있습니다.

@ nginx.conf
server {
  listen 80;
  server_name 127.0.0.1;
  root /var/www/sites/
  index index.html index.htm
  ...
}

위와 같이 설정된 경우 아래처럼 여러개의 도메인별로 설정해보겠습니다.


! 여러개의 도메인인 경우만약 아래 두개의 도메인을 사용한다고 가정하면 새로운 설정값은 어떻게하는지 알아보죠.
1) webisfree.com
2) abcde.com

위 도메인을 아래와 같이 설정하도록 합니다.
server {
  listen 80;
  server_name webisfree.com
  root /var/www/webisfree.com/
  index index.html index.htm
  ...
}

server {
  listen 80;
  server_name abcde.com
  root /var/www/abcde.com
  index index.html index.htm
  ...
}

이제 접속된 host 정보에 따라 해당하는 경로의 index 파일이 실행되게됩니다. 그렇다면 ssl 설정이 되어 있는 겨우라면 어떻게 될까요?




# SSL 설정이 되어 있는 경우 멀티 도메인 설정하기만약 A, B 사이트의 정보가 아래와 같은 경우라면? 이때 abcde.com은 SSL을 사용한 https 프로토콜을 사용합니다.
https://webisfree.com
http://abcde.com

이제 위 도메인을 사용하여 아래와 같이 설정해봅니다.
server {
  listen 80;
  server_name webisfree.com;
  ssl on;
  ssl_certificate ...;
  ...
  root /var/www/webisfree.com/;
  index index.html index.htm;
  ...
}

server {
  listen 80;
  server_name abcde.com;
  ssl off;
  root /var/www/abcde.com;
  index index.html index.htm;
}

이처럼 ssl 설정을 하나의 server 설정에만 추가하는 것이 가능합니다.