Author Topic: Редирект в Apache  (Read 9087 times)

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
Редирект в Apache
« on: April 22, 2014, 07:10:19 am »
Прошу прощения за возможно нубский вопрос.
Читал статью, навеяло этим обсуждением.
В статье упоминается вот такая строка конфига Apache
Code: [Select]
SCGIMount /RPC2 127.0.0.1:5000Это что получается, теоритически можно перенаправить 9091 порт transmission-daemon или скажем 10000 порт Webmin на 80-й порт сервера? И таким образом получить доступ к любому порту своего сервера из мира

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
Re: Редирект в Apache
« Reply #1 on: April 22, 2014, 01:04:25 pm »
Про маршрутизатор я в курсе, у меня на работе (по некоторым наблюдениям) стоит squid и в мир открыто ограниченое количество портов. Поэтому не получается обратиться напрямую к нужному порту. Приходится городить либо openvpn либо pptp. Я уже почитал по данному вопросу инфу про апача. Можно перенаправить с помощью локального прокси, но надо вникать в маны

Отправлено с моего Hongmi через Tapatalk

« Last Edit: April 22, 2014, 05:25:28 pm by luminofor »

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
Re: Редирект в Apache
« Reply #2 on: April 22, 2014, 05:26:00 pm »
Я может неправилно сформулировал вопрос изначально, под перенаправлением я имею ввиду обращение вида http://my_host.com/transmission будет перенаправлено на на http://my_host.com:9091 средствами апача, и для внешнего браузера будет казаться, что он обращается к 80-му порту
Но в свете последней найденной мной информации, думаю, что перенаправление будет на http://127.0.0.1:9091

Offline nostromo

  • Jr. Member
  • **
  • Posts: 99
  • Karma: +4/-0
    • View Profile
Re: Редирект в Apache
« Reply #3 on: April 23, 2014, 12:32:47 am »
Я с Web-серверами знаком не то чтобы очень, но насколько я понял, речь идет об обратном прокси (reverse proxy). Так что да, эта функциональность есть и в Apache, и в NGINX, и в другом нормальном Web-сервере.

Offline Раджа

  • Sr. Member
  • ****
  • Posts: 438
  • Karma: +6/-2
  • Разбираюсь в чем попало
    • View Profile
Re: Редирект в Apache
« Reply #4 on: April 23, 2014, 12:40:37 am »
Аналогичный функционал у nginx http://nginx.org/ru/docs/http/ngx_http_proxy_module.html
Заткнись и смотри аниме!

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
Re: Редирект в Apache
« Reply #5 on: April 24, 2014, 04:56:02 pm »
Аналогичный функционал у nginx http://nginx.org/ru/docs/http/ngx_http_proxy_module.html
Я поставил сборку от ikeeki, там уже апач стоял. Подумал: я ни в nginx не разбираюсь, ни в apache, так что какая разница с чем париться  :D

Orby_tale

  • Guest
Re: Редирект в Apache
« Reply #6 on: May 18, 2014, 10:43:40 am »
Да, апач может проксировать запросы на другой порт. В настройках вхоста пропишите что-то типа такого:
<VirtualHost *:80>
        ServerName my_host.com
        ServerAlias www.my_host.com

        ProxyRequests Off
        ProxyPreserveHost On

        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        ProxyPass               /transmission    http://localhost:9091/
        ProxyPassReverse        /transmission   http://localhost:9091/
</VirtualHost>

Апач должен быть с загруженным модулем mod_proxy

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
Re: Редирект в Apache
« Reply #7 on: October 30, 2014, 05:51:55 am »
Да, апач может проксировать запросы на другой порт. В настройках вхоста пропишите что-то типа такого:
<VirtualHost *:80>
        ServerName my_host.com
        ServerAlias www.my_host.com

        ProxyRequests Off
        ProxyPreserveHost On

        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        ProxyPass               /transmission    http://localhost:9091/
        ProxyPassReverse        /transmission   http://localhost:9091/
</VirtualHost>

Апач должен быть с загруженным модулем mod_proxy

Вернулся я к этому вопросу. Как оказалось не все так просто. Буду постить здесь результаты моих мучений.

Итак. Первым делом я попытался получить доступ к своему роутеру из мира. Напомню, что порт 80 уже занят, он перенаправлен на порт 80 кубика. Хочу, чтобы открывая страничку http://myhost.com/router открывалась страница настроек роутера, расположенная по внутреннему адресу 192.168.1.1

Для этого вдумчиво почитал Установка HTTP-сервера Apache как обратного прокси с помощью mod_proxy
Прописал примерно такую конфигурацию в апач

Code: [Select]
        ProxyRequests Off
        ProxyPreserveHost On

        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        ProxyPass  /router http://192.168.1.1
        ProxyPassReverse  /router http://192.168.1.1
</VirtualHost>

Получаю такую страничку



Криво правда?

Нашел решение проблемы здесь, за что спасибо автору

Прописал такую конфигурацию

Code: [Select]
ProxyRequests Off
#ProxyPreserveHost On

 <Proxy *>
 Order deny,allow
 Allow from all
 </Proxy>

#RewriteEngine On

<Location /router>
  ProxyPass http://192.168.1.1
  ProxyPassReverse http://192.168.1.1
  RequestHeader unset referer
</Location>

Теперь все ОК



Обратите внимание на слеш в конце адреса. Без него страничка будет такая же кривая, как на первой картинке

ЗЫ. Я так и не понял на что влияют параметры ProxyPreserveHost и RewriteEngine, поэтому пока закомментировал их

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
Re: Редирект в Apache
« Reply #8 on: October 30, 2014, 06:27:35 am »
Для трансмиссии добавил следующие строчки в конфиг

Code: [Select]
ProxyPass /transmission http://localhost:9091/transmission
 ProxyPassReverse /transmission http://localhost:9091/transmission