ПРОЕКТЫ 


  АРХИВ 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 


Модули Apache 

Прочие программы 


ПИШИТЕ
ПИСЬМА














     ПРОГРАММЫ :: Модули Apache

mod_tcprelay - подключение любого TCP-cервера к Apache

Download: ftp://ftp.lexa.ru/pub/domestic/lexa/

PREFACE.

Никаких гарантий, используйте as is, (C)opyright 1999 Alex Tutubalin Никакой поддержки не оказывается, баг-фиксы будут приняты, но даже благодарность не обещается. Этот модуль нужен мне в настоящее время ровно для одного проекта и вряд-ли я буду поддерживать и развивать его.

License

Apache-style. При использовании, модификации и так далее, должен сохраняться первоначальный копирайт и ссылка на автора (т.е. меня)

Что это

Это простейший 'TCP-relay' для Apache HTTP Server. При получении запроса, он коннектится по TCP к указанному host:port, передает туда три строчки:
USER: $REMOTE_USER (или unknown, если пользователь не был авторизован апачем)
PATHINFO: $PATH_INFO (или unknown, если path-info нету)
QUERY: $QUERY_STRING
и отдает все байты, полученные от TCP-сервера клиенту (предполагая, что сервер отдает html, т.е. Content-Type ставится в text/html)
Этот модуль используется в проекте Рамблер-Словари для соединения с "словарным сервером" (соответственно, в словарном сервере оказалось можно не реализовывать протокол HTTP) и в нескольких проектах, использующий мой chat-сервер.

Как это использовать:

  • (Apache 1.x) собрать Apache с этим модулем:
    ./configure --add-module=/path/to/mod_tcprelay.c
  • (Apache 2.0.x)
    /usr/local/apache/bin/apxs -i -c -a mod_tcprelay2.c
  • Написать в конфиге Apache что-то в духе:
    <IfModule mod_tcprelay.c>
    <Location /relay.cgi>>
    SetHandler tcprelay-handler
    # порт к которому коннектиться
    TCPRelayPort 9099
    # IP-адрес хоста к которому коннектиться
    TCPRelayHost 127.0.0.1
    <Location>>
    </IfModule>>
    
  • использовать URL вроде /relay.cgi/other/parameters
  • протестировать, например так:
      netcat -l -p 9099 </dev/random
      lynx http://myserver/relay.cgi/anyparameter
      

  •  




    Copyright © Lexa Software, 1996-2009.