Я получил 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для пересылки запросов на соответствующий внутренний сервер.
Вам необходимо добавить A
DNS-запись 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