У меня есть случай, с которым я не знаю, как управлять, и мне нужен совет.
Одно доменное имя - один внешний ip. Один уже работающий сервер Debian с NGINX для размещения веб-страниц.
So, as it is now, I have *.domain.com pointing to server.internal.ip.
Internal IP is on a 192.168.1.x/24 network and all works just as intended.
Меня просят создать CNAME для домена domain.com, т.е.
cname1.domain.com
cname2.domain.com
cname3.domain.com
и так далее.
Теперь мне нужно указать соответствующее имя cname на соответствующий сервер, т.е.
cname1.domain.com to server1.internal.ip
cname2.domain.com to server2.internal.ip
..
cname9.domain.com to server9.internal.ip
Мне все еще нужно убедиться, что все другие запросы, не принадлежащие CNAME (например, * .domain.com), принадлежат исходному server.internal.ip.
Я не получаю больше внешних IP-адресов, я использую то, что у меня есть.
Как мне это сделать с NGINX?
Я предполагаю, что мне как-то нужно настроить уже работающий server.internal.ip для перенаправления запросов на порт 80 на основе cname на соответствующие новые внутренние серверы?
Мой маршрутизатор, который используется сегодня, оснащен DD-WRT.
Любые советы / указатели к HOWTO, которые мне не удалось найти, будут оценены.
Я полагаю, у вас есть порт 80
перенаправлено на маршрутизатор на сервер server.internal.ip
, поэтому этот сервер получает весь трафик, идущий на публичный IP-адрес на порт 80.
Вы можете иметь несколько виртуальных хостов на основе имен на server.internal.ip
работает как прокси-сервер для других серверов.
На server.internal.ip
, вы можете добавить в свой nginx.conf
:
server {
listen 192.168.1.1:80;
server_name cname1.domain.com;
root /var/www/localhost/htdocs;
location ~ ^/(.*)$ {
proxy_pass http://server1.internal.ip:80/$1$is_args$args;
proxy_set_header Host cname1.domain.com;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 192.168.1.1:80;
server_name cname2.domain.com;
root /var/www/localhost/htdocs;
location ~ ^/(.*)$ {
proxy_pass http://server2.internal.ip:80/$1$is_args$args;
proxy_set_header Host cname2.domain.com;
proxy_set_header X-Real-IP $remote_addr;
}
}
Заголовок X-Real-IP
может использоваться для регистрации поступившего IP-запроса (в противном случае может быть опущено). Эти виртуальные хосты будут иметь приоритет над вашим *.domain.com
(Документация Nginx)