Ответить на Ваше редактирование: необходимо использовать регулярный коммерческий SSL. Если Вы запланируете использовать субдомены и должны будете защитить их, то Вам будет нужен подстановочный знак SSL. Следует иметь в виду, если Вы планируете принять кредитные карты, Вы, возможно, должны выполнить Стандарты PCI-DSS.
Кроме того, хотя кто-то упомянул Godaddy, я буду советовать, чтобы избегать этой компании, как можно больше. Существуют лучшие, как Namecheap, которая также располагается в на уровне менее чем 15$ для регулярного SSL в течение одного года.
Одно возможное решение состоит в том, чтобы дать внешний IP-адрес системе Ubuntu и использованию, это - Apache для инвертирования прокси для сервера IIS7.
Создайте virtualhost для каждого из хостов на сервере IIS в, например, /etc/apache2/sites-avilable/iisproxyhosts
<VirtualHost *:80>
ServerName IIS.Domain1.TLD
ProxyRequests Off
<Proxy *>
Order deny,allow
allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://AddressOfIIServer/
ProxyPassReverse / http://AddressOfIIServer/
</VirtualHost>
<VirtualHost *:80>
ServerName IIS.Domain2.TLD
ProxyRequests Off
<Proxy *>
Order deny,allow
allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://AddressOfIIServer/
ProxyPassReverse / http://AddressOfIIServer/
</VirtualHost>
<VirtualHost *:80>
ServerName IIS.Domain3.TLD
ProxyRequests Off
<Proxy *>
Order deny,allow
allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://AddressOfIIServer/
ProxyPassReverse / http://AddressOfIIServer/
</VirtualHost>
Позвольте проксировать
a2enmod proxy_http
a2enmod proxy
Включите iisproxyhosts и retstart апача
a2ensite iisproxyhosts
/etc/init.d/apache2 reload
Основанный на имени виртуальный размещающий только работает, когда все виртуальные хосты работают на том же экземпляре веб-сервера. В этом случае необходимо будет использовать NAT, чтобы получить обе машины в сети и или настроить поле NAT для передачи соединений с нестандартным портом к одному из полей, или принимать меры, чтобы один из веб-серверов проксировал для другого (имя базировалось, виртуальный хостинг затем будет полезен для вызова прокси). Или просто купите другой IP-адрес.
Microsoft TMG Server как брандмауэр перед этими двумя серверами может разместить несколько, веб-URL на одном общедоступном IP-адресе и "инвертирует прокси" к нескольким хостам позади него с помощью NAT. Легкое решение состоит в том, чтобы получить другой общедоступный IP, как сказал @geekosaur.
Можно передать порт 80 Apache на Linux, который служил бы обратным прокси к Обоим Apache (На порте кроме 80) и IIS.
Это отправило бы запрос к Apache (Linux) или IIS в зависимости от доменного имени в запросе.
У Вас есть сервер с общедоступным IP, и апач работает на нем. Теперь Вы хотите разместить свои приложения на LAN и также хотеть, чтобы они были доступны в Интернете, важная часть является этими приложениями, все еще работают на машинах на LAN. Для этой ситуации необходим Обратный Прокси. Вот некоторое объяснение такой установки
позвольте говорят, что веб-сайты:
a) internal1.example.com должен отобразиться на internal1.example.com
b) internal2.example.com должен отобразиться на internal2.example.com
c) internal3.example.com должен указать на internal3 .example.com
d) internal4.example.com должен указать на internal4 .example.com
|--------------192.168.1.3
| (internal3.example.com)
|
|--------------192.168.1.4
| (internal4.example.com)
(Public IP ) |
A-------------|
(reverse proxy server) |
(192.168.1.25) |
example.com |
|--------------192.168.1.1
| (internal1.example.com)
|
|--------------192.168.1.2
| (internal2.example.com)
Я использую Ubuntu для хостинга Apache, vhost определение в случае Debian основывало системы, определение веб-сайтов сделано в системе в вышеупомянутой схеме, которая имеет общедоступный IP
/etc/apache2/sites-enabled/internal1.conf
/etc/apache2/sites-enabled/internal2.conf
/etc/apache2/sites-enabled/internal3.conf
/etc/apache2/sites-enabled/internal4.conf
vhost определение каждого из этих сайтов будет следующим образом/etc/apache2/sites-enabled/internal1.example.conf
<virtualhost *:80>
ServerAdmin webmaster@localhost
ServerName internal1.example.com
ProxyRequests off
<proxy *>
Order deny,allow
Allow from all
</proxy >
ProxyPass / http://192.168.1.1/
ProxyPassReverse / http://192.168.1.1/
</VirtualHost >
/etc/apache2/sites-enabled/internal2.example.conf
<virtualhost *:80>
ServerAdmin webmaster@localhost
ServerName internal2.example.com
ProxyRequests off
<proxy *>
Order deny,allow
Allow from all
</proxy >
ProxyPass / http://192.168.1.2/
ProxyPassReverse / http://192.168.1.2/
</VirtualHost >
/etc/apache2/sites-enabled/internal3.example.conf
<virtualhost *:80>
ServerAdmin webmaster@localhost
ServerName internal3.example.com
ProxyRequests off
<proxy *>
Order deny,allow
Allow from all
</proxy >
ProxyPass / http://192.168.1.3/
ProxyPassReverse / http://192.168.1.3/
</VirtualHost >
/etc/apache2/sites-enabled/internal4.example.conf
<virtualhost *:80>
ServerAdmin webmaster@localhost
ServerName internal4.example.com
ProxyRequests off
<proxy *>
Order deny,allow
Allow from all
</proxy >
ProxyPass / http://192.168.1.4/
ProxyPassReverse / http://192.168.1.4/
</VirtualHost >
Отметьте во всем вышеупомянутом vhost определения, я отбросил опции Файлов журнала. Таким образом, если Вы обращаетесь к рабочему серверу, добавляют их в каждом vhost файле. Выше должен только дать Вам ясный пример как, как он может работать.