1 домен .. 2 сервера и 2 приложения - PullRequest
2 голосов
/ 23 мая 2010

У меня есть сайт, такой как twitter.com, на сервере один и на сервере два, у меня есть форум, путь которого подобен domain.com/forum

.

на сервере один я хотел реализовать подстановочный знак DNS и поставить основной домен на него. но на втором сервере я хотел сохранить отдельный форум, я не могу дать субдомен forum.domain.com, потому что все его ссылки уже размещены в поисковых системах и ссылаются на domain.com/forum.

так что мне было интересно, как я могу разместить DNS домена и подстановочные знаки на сервере один и все еще в состоянии указать путь на сервере 2 для domain.com/forum (как подпапка).

есть идеи?

как вы думаете, htaccess может сделать эту работу? если да, то как?

Ответы [ 5 ]

3 голосов
/ 05 августа 2010

Легко - используйте прокси! Если вам нравится apache, вам понравится apache mod_proxy для ваших целей.

<VirtualHost *:80>
    ServerName  maindomain.com
    ServerAlias *.maindomain.com

    # insert document root and general settings for this domain here
    # ...

    ProxyPass /forum http://forumdomain.com
    ProxyPassReverse /forum http://forumdomain.com
    ProxyPassReverseCookieDomain forumdomain.com maindomain.com
</VirtualHost>

Эта конфигурация заставляет apache выполнять HTTP-запрос к вашему внутреннему домену (forumdomain.com), не уведомляя браузер пользователя о внутреннем расположении. Ваш форум будет доступен по адресу http://*.yourdomain.com/forum. Файлы cookie и заголовки, которые будут соответствующим образом переписаны, а поисковые системы не будут замечать ваш бэкэнд-сервер.

Подробнее об этом можно прочитать на http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

Если вам нужно переписать ссылку на ваш html (href, src ...), вы можете зайти в Google по адресу "mod_proxy_html".

Подобное решение, конечно, может быть построено и с другими интеллектуальными прокси-серверами, такими как squid. Вы можете использовать его для сопоставления любого контента с «внутренних серверов» в ваш публичный домен. Убедитесь, что с маршрутизацией все в порядке или настройте запись хоста для вашего внутреннего домена (forumdomain) с IP-адресом в Интернете 192.168 ...

Приятного просмотра сайта и оставьте отзыв о том, как получилось:)

p.s .: директива «RewriteRule» потенциально может сделать то же самое для вас, но rdirect будет виден (и выполнен) клиентом, если вы не укажете «P», заставив его выполнить внутренний запрос прокси. Если возможно, я бы предпочел mod_proxy, поскольку он более универсален и допускает большую конфигурацию.

3 голосов
/ 03 августа 2010

Вы можете использовать htaccess и mod_rewrite, чтобы domain.com/forum отображал страницы с forum.domain.com.

Может быть, что-то вроде этого:

Options +FollowSymLinks
RewriteEngine on
RewriteRule domain.com/forum/(.+) forum.domain.com/$1
2 голосов
/ 06 августа 2010

Если вы используете прокси-сервер на сервере 1, указывающий на сервер 2, вы увеличите нагрузку на сервер 1, поскольку весь трафик будет проходить через него. Кроме того, если сервер 1 выйдет из строя, никто не сможет достичь сервера 2. Хотя, конечно, это возможно, но это нужно учитывать.

Я бы предложил настроить supdomain для сервера 2 в любом случае, например forum.domain.com, а на сервере 1 вы установите перенаправление 301 с domain.com/forum на forum.domain.com с помощью mod_rewrite из htaccess. Используя эту технику, вы даже можете перенаправить вызовы на конкретные ссылки на соответствующие им страницы на сервере 2. Поисковые системы будут следовать 301, и они в конечном итоге обновят индекс.

2 голосов
/ 05 августа 2010

Вы можете использовать перенаправление 301, чтобы убедиться, что поисковая система обновляет свой индекс новыми URL-адресами, например:

RewriteRule domain.com/forum/(.*) http://forum.domain.com/$1 [R=301,L]
1 голос
/ 24 мая 2010

Если у вас есть два сервера, у вас нет особого выбора, кроме как использовать перенаправление (в идеале - постоянное перенаправление 301) для перемещения пользователей с domain.com/forum на forum.domain.com.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...