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

2 сервера apache OSX за маршрутизатором с 1 общедоступным IP-адресом с использованием решения обратного прокси

Я так запутался, поэтому мне нужна помощь экспертов по обратному прокси, пожалуйста.

Сервер 1 на общедоступном IP-адресе - 173.xxx.xxx.xxx порт 80 (IP-адрес LAN - 10.1.10.2).

Сервер 1 также имеет локальный активатор DNS, так что локальные пользователи могут просматривать все наши 4 зарегистрированных домена в нашей локальной сети.

Сервер 2 находится в локальной сети с локальным IP-адресом 10.1.10.2

Первый вопрос:

Куда будет идти мой оператор proxyPass ниже, если я хочу, чтобы мой Сервер 2 был доступен из Интернета? Пойдет на Сервер 1 или Сервер 2. Или мне нужно иметь одно и то же выражение для Сервера 1 и Сервера 2? Я тоже пробовал надеть это, но не могу заставить его работать. Это вроде как работает один раз, но пользователи видят только domain1.com все время, независимо от того, какой домен они используют в своем браузере.

ProxyRequests Off
ProxyPreserveHost On
    <Proxy *>
     Order deny,allow
     Allow from all
    </Proxy>
    ProxyPass / http://WhichIPand:Port/
    ProxyPassReverse / http://WhichIPand:Port/

Вопрос 2: httpd-vhosts.conf Могу ли я продолжать использовать виртуальные хосты как на Сервере 1, так и на Сервере 2? В настоящее время я использую виртуальный хост на сервере 1 с 4 зарегистрированными доменами. Я хочу переместить 2 домена с Сервера 1 на Сервер 2, чтобы,

Server 1 will have: domain1.com, domain2.com
Server 2 will have: domain3.com, domain4.com

Вопрос 3: Как бы мой файл хоста выглядел как для Сервера 1, так и для Сервера 2, каждый из которых имеет 2 квалифицированных домена. Будет ли это так или все IP IP локальных LAN на каждом Сервере.

127.0.01 domain1.com
127.0.01 domain2.com
127.0.01 domain3.com
127.0.01 domain4.com

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

Спасибо всем и счастливого Рождества.


добавил это в ответ Шейну и Аарону:

Это то, что я получил до сих пор, и это никуда меня не приведет. может быть, ты сможешь помочь и очень тебе спасибо за твои ответы ...

Мой сервер 1 на общедоступном IP-адресе 173.1xx.1xx.xxx порт 80 (IP-адрес LAN - 10.1.10.2) Настройка OSX Lion на виртуальном хосте: httpd-vhost.conf

При такой настройке я получаю:

Служба временно недоступна. Сервер временно не может обработать ваш запрос из-за простоя в обслуживании или проблем с производительностью. Пожалуйста, попробуйте позже.

NameVirtualHost *

<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
ServerAdmin admin@domain1.com
DocumentRoot "/Library/WebServer/joomla"
ErrorLog /Library/WebServer/joomla/error_domain1.log
<Directory "/Library/WebServer/joomla">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All AuthConfig
    Order allow,deny
    Allow from all
</Directory>
ProxyRequests Off
ProxyPreserveHost On
    <Proxy *>
     Order deny,allow
     Allow from all
    </Proxy>
        ProxyPass / http://10.1.10.2:8080/
        ProxyPassReverse / http://10.1.10.2:8080/
</VirtualHost>


<VirtualHost *:80>
ServerName  domain2.com
ServerAlias www.domain2.com
ServerAdmin admin@domain2.com
DocumentRoot "/Library/WebServer/webb"
ErrorLog /Library/WebServer/webb/error_domain2.log
<Directory "/Library/WebServer/webb">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
ProxyRequests Off
ProxyPreserveHost On
    <Proxy *>
     Order deny,allow
     Allow from all
    </Proxy>
        ProxyPass / http://10.1.10.2:8080/
        ProxyPassReverse / http://10.1.10.2:8080/
</VirtualHost> 



My Server 2 on LAN IP: 10.1.10.2, OSX Snow setup on virtual host: httpd-vhost.conf

<VirtualHost *:80>
ServerName  domain3.com
ServerAlias www.domain3.com
ServerAdmin admin@domain3.com
DocumentRoot "/Library/WebServer/domain3"
ErrorLog /Library/WebServer/domain3/error_cj.log
<Directory "/Library/WebServer/domain3">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All AuthConfig
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>  


<VirtualHost *:80>
ServerName domain4.org
ServerAlias www.domain4.org
ServerAdmin admin@domain4.org
DocumentRoot "/Library/WebServer/domain4"
ErrorLog /Library/WebServer/domain4/error_fn.log
<Directory "/Library/WebServer/domain4">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All AuthConfig
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>  
  1. Конфигурация ProxyPass будет частью конфигурации Сервера 1. Это хост, действующий как прокси для Сервера 2. Вам не нужно вносить какие-либо изменения в Сервер 2.

  2. Вы сможете продолжать использовать vhosts. Я был разочарован и просто настроил прокси с <location> заявления. Это хорошо работает для того, что мне нужно.

  3. Я думаю, вы просто усложняете ситуацию с файлами локальных хостов. Прокси-сервер 2 по IP вместо? Файл локальных хостов не является DNS, поэтому он не изменит способ доступа других хостов к этим системам. Но если вы проксируете Сервер 2 по полному доменному имени, Сервер 1 не сможет найти его на локальном хосте. Это должен быть IP-адрес внутренней локальной сети.

Похоже, вы хотите сделать следующее:

  • Сервер 1 - это общедоступный сервер, содержащий 4 сайта:
    1. domain1.com, для которого он обслуживает контент
    2. domain2.com, для которого служит контент
    3. domain3.com, который он передает серверу 2
    4. domain4.com, который он передает серверу 2
  • Сервер 2 не имеет публичного адреса и содержит 2 сайта:
    1. domain3.com, для которого он обслуживает контент
    2. domain4.com, для которого он обслуживает контент

Если это так, то ваша конфигурация Сервера 2 выглядит хорошо, а Сервер 1 должен выглядеть примерно так:

ProxyRequests Off
ProxyPreserveHost On
NameVirtualHost *

<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    ServerAdmin admin@domain1.com
    DocumentRoot "/Library/WebServer/joomla"
    ErrorLog /Library/WebServer/joomla/error_domain1.log
    <Directory "/Library/WebServer/joomla">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All AuthConfig
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName  domain2.com
    ServerAlias www.domain2.com
    ServerAdmin admin@domain2.com
    DocumentRoot "/Library/WebServer/webb"
    ErrorLog /Library/WebServer/webb/error_domain2.log
    <Directory "/Library/WebServer/webb">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName domain3.com
    ServerAlias www.domain3.com
    ServerAdmin admin@domain3.com
    ProxyPass / http://10.1.10.2:80/
    ProxyPassReverse / http://10.1.10.2:80/
</VirtualHost>

<VirtualHost *:80>
    ServerName domain4.com
    ServerAlias www.domain4.com
    ServerAdmin admin@domain4.com
    ProxyPass / http://10.1.10.2:80/
    ProxyPassReverse / http://10.1.10.2:80/
</VirtualHost>

И да, как предложил Аарон, очистите файлы хостов - они просто сбивают с толку.