Скачиваем последнюю версию 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 .
“Стремись не к тому, чтобы добиться успеха,
а к тому, чтобы твоя жизнь имела смысл”
Альберт Энштейн
воскресенье, 20 февраля 2011 г.
среда, 9 февраля 2011 г.
Создание SSH туннеля
пример:
перебросить локальный порт 2000 на удаленный порт 25
ssh -f -L [bind_address:]2000:local.org:25 -nNT user@remote.org
пояснения:
-f - перейти в фон после запуска
local.org - локальный сервер
user@remote.org - удаленный сервер с которым соединяемся
[bind_address:] - необязательный параметр (по умолч.: localhost)
-L 2000 - локальный порт для начала туннеля
:25 - удаленный порт для конечной точки туннеля
-N - не выполнять удаленных команд
-n - связать стандартное устройство ввода с /dev/null
-T - не создавать псевдо tty на удаленной системе
пример:
перебросить удаленный порт 2000 на локальный порт 25
ssh -f -R [bind_address:]2000:local.org:25 -nNT user@remote.org
пояснения:
[bind_address:] - необязательный параметр (по умолч.: localhost)
-R 2000 - удаленный порт 2000
добавить в sshd_config:
GatewayPorts clientspecified
перебросить локальный порт 2000 на удаленный порт 25
ssh -f -L [bind_address:]2000:local.org:25 -nNT user@remote.org
пояснения:
-f - перейти в фон после запуска
local.org - локальный сервер
user@remote.org - удаленный сервер с которым соединяемся
[bind_address:] - необязательный параметр (по умолч.: localhost)
-L 2000 - локальный порт для начала туннеля
:25 - удаленный порт для конечной точки туннеля
-N - не выполнять удаленных команд
-n - связать стандартное устройство ввода с /dev/null
-T - не создавать псевдо tty на удаленной системе
пример:
перебросить удаленный порт 2000 на локальный порт 25
ssh -f -R [bind_address:]2000:local.org:25 -nNT user@remote.org
пояснения:
[bind_address:] - необязательный параметр (по умолч.: localhost)
-R 2000 - удаленный порт 2000
добавить в sshd_config:
GatewayPorts clientspecified
Использование Bourne shell (bash) как CGI скрипта
Пример скрипта:
остается только скопировать это
в файл http://server.org/cgi-bin/test.sh
и установить права доступа: chmod 755 test.sh
Переменные окружения доступные внутри CGI скрипта:
http://tldp.org/LDP/abs/html/networkprogramming.html
остается только скопировать это
в файл http://server.org/cgi-bin/test.sh
и установить права доступа: chmod 755 test.sh
Переменные окружения доступные внутри CGI скрипта:
http://tldp.org/LDP/abs/html/networkprogramming.html
понедельник, 7 февраля 2011 г.
Настройка доступа SSH через SSHD демона
Настройки сервера:
1. Настраиваем /etc/openssh/sshd_config
DSAAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
2. Генерируем пару ключей и устанавливаем пароль
ssh-keygen -b 1024 -t dsa -C "home machine"
пароль можно поменять:
ssh-keygen -p [-N новый_пароль] [-f keyfile]
файлы готовы:
публичный ключ: (нужно добавить в ~/.ssh/authorized_keys)
~/.ssh/id_dsa.pub
установим права доступа
chmod 600 ~/.ssh/id_dsa ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys
добавляем публичный ключ к списку
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
приватный ключ: (должен храниться в безопасном месте)
~/.ssh/id_dsa
переместим его на удаленную машину-клиент
выполним на клиентской машине:
scp user@host.org:~/.ssh/id_dsa ~/.ssh/
3. Перезапускаем сервис
service sshd restart
Настройки клиента:
-вручную
1. добавляем ключи
ssh-add ~/.ssh/id_dsa
[вводим пароль]
2. соединяемся
ssh user@mysite.com
-автоматизация+псевдоним(alias)
1. создаем фал vi ~/.ssh/config
2. прописываем параметры
Host myhost
User usr
Port 2222
HostName host.org
IdentityFile ~/.ssh/id_dsa
3. соединяемся
ssh myhost
1. Настраиваем /etc/openssh/sshd_config
DSAAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
2. Генерируем пару ключей и устанавливаем пароль
ssh-keygen -b 1024 -t dsa -C "home machine"
пароль можно поменять:
ssh-keygen -p [-N новый_пароль] [-f keyfile]
файлы готовы:
публичный ключ: (нужно добавить в ~/.ssh/authorized_keys)
~/.ssh/id_dsa.pub
установим права доступа
chmod 600 ~/.ssh/id_dsa ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys
добавляем публичный ключ к списку
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
приватный ключ: (должен храниться в безопасном месте)
~/.ssh/id_dsa
переместим его на удаленную машину-клиент
выполним на клиентской машине:
scp user@host.org:~/.ssh/id_dsa ~/.ssh/
3. Перезапускаем сервис
service sshd restart
Настройки клиента:
-вручную
1. добавляем ключи
ssh-add ~/.ssh/id_dsa
[вводим пароль]
2. соединяемся
ssh user@mysite.com
-автоматизация+псевдоним(alias)
1. создаем фал vi ~/.ssh/config
2. прописываем параметры
Host myhost
User usr
Port 2222
HostName host.org
IdentityFile ~/.ssh/id_dsa
3. соединяемся
ssh myhost
воскресенье, 6 февраля 2011 г.
Документация по Git
Достаточно подробная документация по Git: http://progit.org/book/ru/
Опыт работы: http://habrahabr.ru/blogs/Git/60347/
Настройка сервера:
1. подключаемся к серверу
ssh myserver.com
2. переходим в нужный каталог
cd /var/git && mkdir myapp.git && cd myapp.git
git --bare init
3. выходим
exit
Настройка клиента:
1. получаем локальную копию
git clone git@myserver.com:/var/git/myapp.git
2. добавляем файлы
git add .
3. сохраняем в локальном репозитории
git commit -a -m "Initial commit"
4. отправляем изменения на удаленный репозиторий
git push origin master
добавление списка игнорирования(svn+git)
1. создаем файл
vi .svnignore
2. добавляем список
.git
.gitignore
3. установим свойство
svn propset svn:ignore -F .svnignore .
4. проверим
svn propget svn:ignore .
5. добавим файл в репозиторий
svn add .svnignore
6. отправляем в репозиторий
svn commit -m "added .svnignore"
Опыт работы: http://habrahabr.ru/blogs/Git/60347/
Настройка сервера:
1. подключаемся к серверу
ssh myserver.com
2. переходим в нужный каталог
cd /var/git && mkdir myapp.git && cd myapp.git
git --bare init
3. выходим
exit
Настройка клиента:
1. получаем локальную копию
git clone git@myserver.com:/var/git/myapp.git
2. добавляем файлы
git add .
3. сохраняем в локальном репозитории
git commit -a -m "Initial commit"
4. отправляем изменения на удаленный репозиторий
git push origin master
добавление списка игнорирования(svn+git)
1. создаем файл
vi .svnignore
2. добавляем список
.git
.gitignore
3. установим свойство
svn propset svn:ignore -F .svnignore .
4. проверим
svn propget svn:ignore .
5. добавим файл в репозиторий
svn add .svnignore
6. отправляем в репозиторий
svn commit -m "added .svnignore"
Подписаться на:
Сообщения (Atom)