Hyper-V를 이용하여 서버 호스팅을 맡기려고 합니다.
물리적 서버는 1대이니, 공인IP는 1대 받겠지요.
가상머신은 2대를 운영하려고 합니다. 앞으로 늘어날 가능성도 있고요. 가상머신의 OS는 모두 Windows Server 2012 R2를 생각하고 있습니다.
호스트 서버의 랜카드는 2개가 있습니다.
예를 들어, 웹 접속은 vm1.domain.com 으로 접속하면 1번 가상머신의 80포트로, vm2.domain.com 으로 접속하면 2번 가상머신의 80포트로 접속되도록 하고 싶습니다. (물론, 가상머신들은 사설IP를 가지고 있겠죠.)
동시에, 원격 접속 역시 vm1.domain.com 으로 접속하면 1번 가상머신의 3389 포트로, vm2.domain.com 으로 접속하면 2번 가상머신의 3389 포트로 접속되도록 하고 싶습니다.
기타, 다른 서비스 포트 역시 비슷한 방식으로 동작하게 했으면 합니다.
이런 구성이 가능할까요? Hyper-V의 가상 스위치를 어떻게 하면 될 것 같기도 한데.. 아리까리 하네요.
웹 접속만이라면 호스트 서버의 IIS에서 일단 받아 처리해 주는 방안도 있겠지만, IP 1개로 서버 두 개를 완전히 분리하여 사용하고 싶어서 그렇습니다.
서버 호스팅사에서 공인 IP를 1개만 추가해 준다고 하더라구요. 추가비용을 더 낸다 해도, 서버당 2개까지만 해 준다네요.
안될것 같기도 하고, 될 것 같기도 하고..
고견 부탁드립니다~
Å×½ºÆ® Çѹø Çغ¼°Ô¿ä. ³×ÀÓ¼¹ö ¿¬µ¿ÀÌ ÇÊ¿äÇؼ 2½Ã°£ Á¤µµ °É¸±°Í °°³×¿ä.
±¸±Û½Å °Ë»öÁß..
¹æȺ®À¸·Î ÇÏ¸é °£´ÜÇÏ°Ô Æ÷¿öµù µÇ´Âµ¥ ¾Æ·¡ õ¿Üõoo³ë°æÇõ´Ô ¸»¾¸´ë·Î
pfSense ¹æȺ®ÀÌ °¡Àå ³ªÀ»°Í °°³×¿ä.
º¹ ¹ÞÀ¸½Ç ²¨¿¡¿ä~
¹®Á¦´Â...¼³Á¤ÇÏ´Â°Ô Á» ÀÌ»óÇÏ°í ¾î·Á¿ö¼...¤Ð¤Ð Æ÷±âÇÏ°í nginx ·Î ¹Ù²å¾ú½À´Ï´Ù.
Áö±ÝÀº ip °¡ ¿©À¯°¡ ÀÖ¾î¼ ±×·¸°Ô´Â ¾È ¾²°í ÀÖ±¸¿ä.
nginx ¾Æ´Ï°í apache ·Îµµ °¡´ÉÇÕ´Ï´Ù.
reverse proxy ·Î °Ë»öÇÏ½Ã¸é µÇ±¸¿ä.
¾Æ´Ï¸é...¾Õ´Ü¿¡ pfSense ¹æȺ® ¼³Ä¡Çϸé...¹æȺ® ´Ü¿¡¼ plugin (package) °¡ ÀÖ½À´Ï´Ù.
squid ¸¦ ¼³Ä¡ÇϽøé reverse proxy ±â´ÉÀÌ Á¦°øµË´Ï´Ù.
³»¿ëÀ» ã¾Æº¸´Ï À¥ ¼ºñ½º¿¡¸¸ Àû¿ëµÇ´Â °Í ó·³ ¾²¿© Àִµí Çؼ ±×·¸½À´Ï´Ù.
Àú´Â ¿¹¸¦ µéÀÚ¸é, ¿ø°Ý µ¥½ºÅ©Åé Æ÷Æ®(3389)¿Í SQL Server µ¥ÀÌÅÍ Æ÷Æ®(1433) µîµµ »ç¿ëÇØ¾ß Çϰŵç¿ä. ^^;
±×³ªÀú³ª, reverse proxy.. º¸¾È¿¡ »ó´çÈ÷ µµ¿òÀÌ µÇ´Â ±¸¼ºÀÏ °Í °°½À´Ï´Ù.
´öºÐ¿¡ »õ·Î¿î °ÍÀ» ¾Ë°Ô µÇ¾ú³×¿ä. °í¸¿½À´Ï´Ù~
ÇÏÁö¸¸ ipÁ¤Ã¥Àº È£½ºÆà ¾÷üÀÇ ±ÔÁ¤ÀÎÁö¶ó...
Ip°¡ ±×¸® ¸¹ÀÌ ÇÊ¿äÇϽŰÍÀº ¾Æ´Ï½Ã´Ï
ã¾Æº¸½Ã¸é ±×Á¤µµ´Â Ä¿¹öÇØÁÙ¼ö ÀÖ´Â ¾÷ü°¡ ÀÖÀ»°ÍÀÔ´Ï´Ù.
Àú¾ß... Á¦°¡ È£½ºÆþ÷À» Çϱ⿡
°¡»ó ¸Ó½Å ÇÑ´ë¿¡ 16°³ÀÇ ¸®¾ó ip·Î ¹°·Á ¾²°í ÀÖ½À´Ï´Ù....^^;;
sub domain ¿¡ µû¶ó¼ °¢°¢ ¼³Á¤ÇÑ IP ·Î Á¢¼Ó µÇµµ·Ï ÇÏ°í ÀÖ½À´Ï´Ù. (HTTP À¥¼¹ö ÇÑÁ¤)
¿ø°Ý Á¦¾î´Â Àú °°Àº °æ¿ì °øÀ¯±âÀÇ Æ÷Æ® Æ÷¿öµùÀ» ÀÌ¿ëÇÕ´Ï´Ù.
nginx ¼³Ä¡ ÇϽðí nginx.conf ¿¡ ´ÙÀ½°ú °°ÀÌ ¼¼ÆÃÇÏ¸é µÉ°Ì´Ï´Ù.
server ºÎºÐÀ» º¸½Ã¸é µË´Ï´Ù.
#user nobody;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 80 Æ÷Æ®·Î µé¾î¿À´Â ¸ÞÀÎÀÔ´Ï´Ù.
server {
listen 80;
server_name *.domain.com;
client_max_body_size 100M;
#charset koi8-r;
#access_log logs/host.access.log main;
}
# sub domain À¸·Î µé¾î ¿À°Ô µÇ´Â ¼³Á¤ÀÔ´Ï´Ù.
server {
listen 80;
server_name git.domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
location / {
#index index.html index.htm;
rewrite ^(.*)$ /$1 break;
proxy_pass http://192.168.0.11:80;
}
}
server {
listen 80;
server_name test.domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
location / {
#index index.html index.htm;
rewrite ^(.*)$ /$1 break;
proxy_pass http://192.168.0.12:8080;
}
}
}