|
|
|
| Такая проблема. Есть специализированый простенький внутренний сервер (в локальной сети) к которому необходимо предоставить доступ из вне, но с авторизацией.
Авторизацию он не поддерживает.
Устроить авторизацию на файрволе - можно. но авторизацию требуют тогда ко всему, это не годится.
Внутри сети есть еще Апач с PHP. Можно сделать страничку PHP, доступ к которой будет апач контроллировать. Так собственно вопрос:
Можно ли сделать так, чтобы этот PHP скрипт делал перенаправление обращений к внутреннему серверу (например к http://localcomputer:10002/)
И транслировал все запросы и ответы из внешних обращений на локальный сервер и обратно?. например (например http://localcomputer:10002/price/GrpId=6150000) Да еще один момент, передача параметров там не стандартная "/GrpId=6150000", те без знака "?", а в скрипт должно идти со знаком "?", так что еще и трансляцию ссылок делать надо.
я думаю такая возможность должна быть, и думаю сделать достаточно просто, но не знаю как. | |
|
|
|
|
|
|
|
для: daka
(20.12.2004 в 17:08)
| | Проблему можно решить при помощи модуля Apache rewrite - http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=512 | |
|
|
|
|
|
|
|
для: 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/* | |
|
|
|
|
|
|
|
для: daka
(21.12.2004 в 11:59)
| | Я на верное не совсем понял вопроса, поэтому неправильно ответил... т.е. необходимо чтобы все запросы из внутренней сети проходили в Интернет через одну машину и наоборот все ответы из сети шли через эту самую машину?
Тогда так не получится - нужно подымать прокси-сервер - это его задача. | |
|
|
|
|
|
|
|
для: 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 в 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"
Все тему можно закрывать | |
|
|
|