CEX.io

воскресенье, 20 февраля 2011 г.

lighttpd: пишем mod_rpaf

Скачиваем последнюю версию lighttpd
Читаем инструкцию по написанию плагина для lighttpd
Исходный код модуля для apache берем тут

Приступаем:
cd lighttpd-1.4.28/src
cp mod_skeleton.c mod_rpaf.c

После небольшой правки получаем текст приведенный ниже.
Скопируем приведенный ниже текст и вставим в mod_rpaf.c:


добавим строки в файл src/Makefile.am
lib_LTLIBRARIES += mod_rpaf.la
mod_rpaf_la_SOURCES = mod_rpaf.c
mod_rpaf_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_rpaf_la_LIBADD = $(common_libadd)

собираем lighttpd
./configure --prefix=/usr ...
make
sudo make install

конфигурационный файл lighttpd.conf:
server.port = 8081
server.modules = ("mod_rpaf", ....)
rpaf.enable = 1 # 1-enable module, 0-disable module
rpaf.proxy_ips = ( "127.0.0.1", ... ) # proxy servers address
rpaf.sethostname = 1 # 1-enable set "Host:" using "X-Forwarded-Host" or "X-Host", 0-off
rpaf.header = "X-Real-IP" # "X-Forwarded-For" if commented

конфигурационный файл nginx.conf:
http {
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  client_max_body_size 10m;
  client_body_buffer_size 128k;
  proxy_connect_timeout 90;
  proxy_send_timeout 90;
  proxy_read_timeout 90;
  proxy_buffers 32 4k;
}

server { # simple reverse-proxy
  listen 80;

  server_name test.org;
  access_log /var/log/nginx/lighttpd.access.log;

  # pass requests for dynamic content to rails/turbogears/zope, et al
  location / {
    proxy_pass http://127.0.0.1:8081;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Host myhost;
  }
}

перезапускаем оба сервиса:
service nginx restart
service lighttpd restart

модуль написан по аналогии с mod_rpaf для apache
Это первая версия модуля, прошу протестировать его всех,
кому он может быть полезным.
в случае обнаружения багов, пишите по адресу: isaleksey@gmail.com

github
cd lighttpd-1.4.28/src
git clone git://github.com/symalex/mod_rpaf.git .

Комментариев нет: