Назад | Перейти на главную страницу

Обслуживать несколько серверов с одного IP-адреса

Я видел другие вопросы по этому поводу, которые были похожи, но не точны.

Итак, моя проблема в том, что у меня есть домашний сервер, на котором размещен мой веб-сайт и который использует мой внешний IP-адрес. Ну, скорее мое доменное имя указывает на этот ip. У меня есть второй компьютер, на котором я также хотел бы запустить веб-сервер. Единственный способ, который я мог придумать, - это использовать другой порт и по-прежнему получать доступ к моему домену. Да, www.mydomain.com приведет меня к моему основному сайту, но www.mydomain.com:8080 приведет меня к моему второму компьютеру, на котором размещен его сайт.

Имеет ли это смысл? Это возможно, так как это разные компьютеры и у меня действительно только 1 ip.

Я думаю, что могу создать поддомен, например sub.mydomain.com, но не уверен, поможет ли это.

Спасибо.

да, вы можете запустить отдельный веб-сайт на другом порту. Но что касается поддомена, это не имеет значения, потому что домен может указывать только на IP-адрес, а не на IP-адрес + порт. По умолчанию веб-сайты используют порт 80:

http://domain.com такой же как http://domain.com:80

поэтому, если у вас есть поддомен и вы запускаете веб-сайт на другом порту, вам нужно указать порт с ним, т.е. http://sub.domain.com:8080

Вы также можете указать виртуальные хосты на своем сервере с портом 80, чтобы определенный домен (sub.mydomain.com) перенаправлял на sub.mydomain.com:8080.

Поместите это в конец вашего файла httpd.conf (при условии, что Apache с mod_rewrite):

NameVirtualHost *:80

<VirtualHost *>
  ServerName mydomain.com
  DocumentRoot "C:/Web/Docs/"
</VirtualHost>

<VirtualHost *>
  ServerName sub.mydomain.com
  DocumentRoot "C:/Web/Docs/FileWithPHPRedirect/JustInCase"
  RewriteEngine On
  RewriteCond %{SERVER_PORT} !8080$
  RewriteRule ^(.*) https://sub.mydomain.com:8080$1 [R=301,L] 
</VirtualHost>

Пусть ваш брандмауэр перенаправит порт 8080 на второй сервер. Пути здесь - это пути Windows, просто измените их при необходимости.

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

Вместо этого я бы использовал первичный компьютер в качестве записи DNS, а затем оттуда пропускал трафик. Таким образом, вы можете настроить свой веб-сервер для прокси или перенаправления другого домена или даже подпапки на другой компьютер.

Таким образом, www.domain.com перейдет на machine1. www.domain.com/otherfolder по-прежнему будет идти на машину1, но затем будет перенаправлен или проксирован на машину2. Перенаправление легко настроить, но в URL-адресе все равно будет указан альтернативный порт. Прокси-сервер является наиболее прозрачным, потому что все по-прежнему напрямую обращается к machine1. Однако он может реагировать немного медленнее, потому что все коммуникации проходят через оба веб-сервера, прежде чем дойдут до конечного клиента.