Я столкнулся с ситуацией, когда компания, в которой я работаю, хотела бы распределить свои веб-серверы по виртуальной машине вместо того, чтобы полагаться на один физический компьютер, чтобы делать все. Наша текущая установка выглядит примерно так:
example.com → static IP → internal firewall (only 1 machine may receive port 80 traffic) → 192.168.1.100 (our production box)
example1.com, example2.com, etc... → same as above
Наша производственная коробка работает под управлением Apache и разделяет входящие имена на соответствующие локальные папки с помощью VirtutalHost. Это работает, как и ожидалось, но мы хотели бы отключить некоторые хосты из соображений производительности и безопасности. Что-то вроде следующей настройки:
*.example.com → static IP → firewall → 192.168.1.100 (Production)
jira.example.com -> static IP -> firewall -> 192.168.1.100 -> 192.168.1.120
*.example1.com → static IP → firewall → 192.168.1.100 → 192.168.1.111 (Wordpress-1)
*.example2.com → static IP → firewall → 192.168.1.100 → 192.168.1.112 (Wordpress-2)
etc…..
Мы попробовали что-то похожее на следующее с файлом VirtualHost на 192.168.1.100:
<VirtualHost *:*>
ServerName example.com
...
</VirtualHost>
<VirtualHost jira.example.com:*>
ServerName jira.example.com
...
ProxyPass / http://192.168.1.120:80/
ProxyPassReverse / http://192.168.1.120:80/
</VirtualHost>
<VirtualHost example1.com:*>
ServerName example1.com
...
ProxyPass / http://192.168.1.111:80/
ProxyPassReverse / http://192.168.1.111:80/
</VirtualHost>
<VirtualHost example2.com:*>
ServerName example2.com
...
ProxyPass / http://192.168.1.112:80/
ProxyPassReverse / http://192.168.1.112:80/
</VirtualHost>
Это частично сработало — я смог использовать example1.com для общения с Wordpress-1. Однако перенаправление приведет к тому, что гиперссылки будут указывать на example.com, что нарушит работу сайта.
Когда я изучал DNS, мне казалось, что это лучший вариант. Возможно ли, чтобы поставщик доменных имен (в данном случае GoDaddy) указывал на DNS-сервер за брандмауэром, который затем соответствующим образом направлял трафик? Что-то вроде этого:
hostname → static IP → firewall → 192.168.1.100 (DNS) → webserver assigned to hostname
example.com:
NS ns1.example.com.
ns1.example.com. A 192.168.1.100
www A 192.168.1.100
jira.example.com. A 192.168.1.120
example1.com:
NS ns1.example1.com.
ns1.example1.com. A 192.168.1.100
www A 192.168.1.111
example2.com:
NS ns1.example2.com.
ns1.example2.com. A 192.168.1.100
www A 192.168.1.112
server { server_name example1.com; listen 80; listen 8080; location / { proxy_pass $scheme://192.168.1.111:$server_port$uri; proxy_set_header Host $host; } }
- person Jordan   schedule 29.02.2016