URL изменения в Источнике с обратным прокси?

Необходимо было настроить доменное имя в DNS, например, companyname.co.uk. wiki.servername.co.uk пропустил бы Ваши внутренние серверы и искал бы co.uk TLD для a servername домен, который, очевидно, не существует.

Если Вы просто желаете, чтобы внутренние клиенты получили доступ к нему, можно настроить поддельное доменное имя внутренне как company.lan. Затем добавьте его как область поиска для Ваших внутренних клиентов в их настройках TCP/IP.

Далее, на IIS, необходимо настроить новый веб-сайт (помимо значения по умолчанию) для хостинга субдомена. Назовите веб-сайт wiki.servername.company.lan, или независимо от того, что Вы требуете.

Альтернатива всему вышеупомянутому, можно просто использовать уникальные имена для веб-сайта, не обращаясь к субдоменам. Например, с тех пор http://servername уже работы, Вы могли настроить новый веб-сайт в IIS, который ответит на http://anothername. Пока anothername находится в Вашем внутреннем DNS, указывающем на тот же IP.

Править: Я хотел дать пример того, что я имею в виду. В моей сети у нас есть доменное имя company.org. Для внутреннего контроля мы настроили два названные веб-сайта itadmin и itwiki на названном сервере intapps. Для доступа к одному из этих веб-сайтов пользователи вводят также http://itadmin.company.org или просто http://itadmin. Внутренние точки сервера DNS itadmin и itwiki к тому же IP, который является IP для intapps. Записи зарегистрированы под company.org зона в DNS.

0
задан 3 March 2014 в 09:36
3 ответа

Спасибо за подсказку для mod_filter. Вроде работает сейчас! У меня была проблема с тем, что сайт использует оба URL с www. и тот без. Моя конфигурация:

    <VirtualHost *:801>
      ServerName www.dev.domain1.com

      ServerAdmin office@domain2.com

     SetEnvIf X-Forwarded-Proto https HTTPS=on

      FilterProvider gzinflate INFLATE resp=Content-Encoding $gzip
      FilterProvider replace SUBSTITUTE Content-Type $text/
      FilterProvider gzdeflate DEFLATE Content-Type $text/
      FilterChain +gzinflate +replace +gzdeflate
      Substitute "s|domain2.com|dev.domain1.com|n"


     ProxyPass / http://www.domain2.com/
     ProxyPassReverse / http://www.domain2.com/
    # ProxyHTMLEnable On
     ProxyHTMLURLMap http://www.domain2.com/ /



      ErrorLog /var/log/apache2/dev-proxy-error.log

      LogLevel warn

      CustomLog /var/log/apache2/dev-proxy-access.log combined

    </VirtualHost>

И для домена без www

    <VirtualHost *:801>
      ServerName dev.domain1.com

      ServerAdmin office@domain2.com

     SetEnvIf X-Forwarded-Proto https HTTPS=on

      FilterProvider gzinflate INFLATE resp=Content-Encoding $gzip
      FilterProvider replace SUBSTITUTE Content-Type $text/
      FilterProvider gzdeflate DEFLATE Content-Type $text/
      FilterChain +gzinflate +replace +gzdeflate
      Substitute "s|domain2.com|dev.domain1.com|n"


     ProxyPass / http://domain2.com/
     ProxyPassReverse / http://domain2.com/
    # ProxyHTMLEnable On
     ProxyHTMLURLMap http://domain2.com/ /



      ErrorLog /var/log/apache2/dev-proxy-error.log

      LogLevel warn

      CustomLog /var/log/apache2/def-proxy-access.log combined

    </VirtualHost>

Одного ProxyHTMLURLMap недостаточно, потому что он заменяет только тот же самый домен. в домене с www домен без него не будет заменен, и наоборот.

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

2
ответ дан 4 December 2019 в 12:33

У Apache есть модуль для этого - он называется mod_filter .

2
ответ дан 4 December 2019 в 12:33

Я не совсем понимаю, что вы хотите точно, и моя репутация слишком мала для того, чтобы добавить комментарий.

Верно, у вас такая ситуация:

yourCMS.local
|
|
+ -----------> Создайте копию System = dev.yourCMS.local

На вашем "скопированном" сервере веб-сервера возникла такая ситуация:

Пользователь добавляет "dev.yourCMS.local" "в браузере и на вашем сервере разработки перенаправляют соединение на url yourCMS.local, но на том же сервере (поиск 127.0.0.1)

Если я правильно понимаю, попробуйте следующее решение:

  1. Добавьте запись в хост файл (ubuntu / etc / hosts)

     #  
    127.0.0.1 yourCMS.local
    
  2. измените файл конфигурации сайта apache в / etc / apache2 / sites-available / yoursite и добавьте:

     <Прокси *>
     Заказать отказать, разрешить
     Разрешить от всех
    
    
    ProxyPass / http: //yourCMS.local
    ProxyPassReverse / http: //yourCMS.local
    
  3. Перезапустить apache

  4. Попробовать

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

Открыт для других решений и комментариев.

-1
ответ дан 4 December 2019 в 12:33

Теги

Похожие вопросы