2 или более веб-серверов используют один статический IP-адрес

2 или более веб-серверов используют один статический IP-адрес

Я получил 1 статический IP от своего интернет-провайдера. Я получил 2 NS (от провайдера NS), направляющих мое доменное имя на мой wan IP. Мой вопрос: как мне заставить server1.domainname.td достичь сервера 1 внутри моей сети, server2.domainname.td достичь сервера 2,
также размещенного в моей локальной сети (server1 = 192.168.1.2 и server2 = 192.168.1.3), оба с использованием только порта 80 (без переадресации портов) (server1 = ms win server2 = Linux) Второй вопрос: как достичь server3.domainname.td на сервере, размещенном за пределами моей сети (еще один статический IP в Интернете)

решение1

Если у вас только один IP-адрес (следовательно, один порт 80и 443), вам нужно использоватьобратный проксинравитьсяnginxдля пересылки запросов на соответствующий внутренний сервер.

Вам необходимо добавить ADNS-запись server1.example.com, указывающую server2.example.comна ваш публичный адрес.

Thenginxсервер может работать на вашем шлюзе, если у вас хороший маршрутизатор сOpenWrtпрошивка или профессиональный маршрутизатор с возможностями прокси. В противном случае вам необходимо использовать один из внутренних серверов и настроить переадресацию портов с маршрутизатора на внутренний сервер.

В сети есть множество руководств по настройкеnginx как обратный прокси.

Обратите внимание, что эта конфигурация будет медленной и подверженной сбоям. Для профессионального развертывания используйте внешний веб-хостинг.

решение2

Если вас интересует только веб-трафик (порт 443 или порт 80), как предлагали другие, используйте nginx. Он очень легкий. Это то, что я делаю.

Если вы используете Linux, в /etc/nginx создайте файл для своей сети (например, proxy.conf):

server {
    listen       80;
    server_name  server1.domainname.td;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://localhost:8085;
    }
}

создайте эту строфу в файле (например...route.conf) и поместите ее в /etc/nginx (я предполагаю, что linux). Добавьте столько строф, сколько необходимо для ваших целей. В /etc/nginx/nginx.conf включите ее:

include /etc/nginx/route.conf  (do this before the closing bracket)

Что касается server3, измените proxy_pass на свое имя хоста или IP:

proxy_pass http://youroutsideserver ..

ОБНОВЛЯТЬ: Как указал Петр, поместите файл route.conf в /etc/nginx/sites-available и создайте символическую ссылку на каталог с включенными сайтами

ln -s /etc/nginx/sites-available/router.conf /etc/nginx/sites-enabled

Связанный контент