Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перенаправление / вывод с другого сервера.
 
 автор: daka   (20.12.2004 в 17:08)   письмо автору
 
 

Такая проблема. Есть специализированый простенький внутренний сервер (в локальной сети) к которому необходимо предоставить доступ из вне, но с авторизацией.
Авторизацию он не поддерживает.
Устроить авторизацию на файрволе - можно. но авторизацию требуют тогда ко всему, это не годится.
Внутри сети есть еще Апач с PHP. Можно сделать страничку PHP, доступ к которой будет апач контроллировать. Так собственно вопрос:
Можно ли сделать так, чтобы этот PHP скрипт делал перенаправление обращений к внутреннему серверу (например к http://localcomputer:10002/)
И транслировал все запросы и ответы из внешних обращений на локальный сервер и обратно?. например (например http://localcomputer:10002/price/GrpId=6150000) Да еще один момент, передача параметров там не стандартная "/GrpId=6150000", те без знака "?", а в скрипт должно идти со знаком "?", так что еще и трансляцию ссылок делать надо.
я думаю такая возможность должна быть, и думаю сделать достаточно просто, но не знаю как.

   
 
 автор: cheops   (20.12.2004 в 17:39)   письмо автору
 
   для: daka   (20.12.2004 в 17:08)
 

Проблему можно решить при помощи модуля Apache rewrite - http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=512

   
 
 автор: daka   (21.12.2004 в 11:59)   письмо автору
 
   для: cheops   (20.12.2004 в 17:39)
 

Можете на примере пояснить как пользоваться этим модулем
Например перенаправлять из http://domain.com/price/GrpID=1000000 на
http://local:10002/price/GrpID=1000000
ну и соответственно чтобы все ссылки http://local:10002/price/* преобразовывались в
http://domain.com/price/*

   
 
 автор: cheops   (21.12.2004 в 23:03)   письмо автору
 
   для: daka   (21.12.2004 в 11:59)
 

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

   
 
 автор: daka   (22.12.2004 в 12:54)   письмо автору
 
   для: cheops   (21.12.2004 в 23:03)
 

Поясняю еще раз. Есть сервер апач + PHP внутри сети. Есть специализированный простенький сервер, не поддерживающий авторизацию. Необходимо запросы ИЗ ИНТЕРНЕТА пробрасывать через Апач или PHP на другой внутренний сервер. (внутренняя проброска использует локальные внутрисетевые адреса), автризацию при пробросе необходимо выполнять средствами апача.
пример.
ВЕБ сервер апач. http://domain.com/, внутреннее имя http://local:80/
внутренний специализированный web сервер http://local:10002/
запрос http://domain.com/price/GrpID=1000000
к примеру необходимо перебразовать внутренне в
http://local:10002/pr/GrpID=1000000
А абсолютные ссылки в ответе сервера исправить обратно с
http://local:10002/pr/* в http://domain.com/pr/*
Модуль Rewrite помог, но не полностью:

  <Proxy *>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
  </Proxy> 

    RewriteEngine on
    RewriteLog "logs/rewrite.log" 
    RewriteLogLevel 2
    RewriteRule ^/price/(.*) http://local:10002/pr/$1 [P]

Модуль прокси пришлось включить для отработки директивы [P] в RewriteRule (внутренний проброс запроса)
Вобщем все работает, но есть глюк не правятся обратные абсолютные ссылки. они остаются http://local:10002/ те когда клиент в интернете получает страничку, он не может нажать ссылку тк естественно такой сервер не доступен.
Думаю копать в модуле Proxy

   
 
 автор: daka   (22.12.2004 в 17:18)   письмо автору
 
   для: daka   (22.12.2004 в 12:54)
 

Все получилось, обошелся без rewrite

    ProxyRequests Off
    ProxyVia off
    ProxyMaxForwards 10
    ProxyPreserveHost On

<Proxy *>
    Order Deny,Allow
    Deny from all
    Allow from 192.168.0.
    Allow from 127.0.0.1
</Proxy> 

<location /price/>
    AuthType Basic
    AuthName "Dealers access"
    AuthUserFile passwd/.htpasswd.ht
    AuthGroupFile passwd/.ourgroup.ht
    require group dealers
    require valid-user
    ProxyPass http://local:10002/price/
</location>


А проблему с абсолютными ссылками решил с помощью linktranslation на файрволе (ISA2000) внутренние ссылки типа "local:10002" преобразуются во внешние типа "domain.com"
Все тему можно закрывать

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования