You are viewing [info]iglooom's journal

debmirror на Gentoo


Сам скрипт debmirror можно скопировать с другой системы, а для его работы необходимо установить следующие пакеты.
 
LockFile::Simple и LWP::UserAgent

Установка производится следующим образом

perl -MCPAN -e shell
install LockFile::Simple
install LWP::UserAgent

 

Логи в nginx


При установке и конфигурировании nginx я решил что у меня получится отключить его логи простым убиранием параметров access_log и error_log из конфигурации, но не тут-то было, спустя несколько дней сервак лег, причиной оказалось 25Гб аксес логов, распологавшихся в каталоге nginx, поэтому они не были заархиврованы, в отличии от логов в /var/log.
Оказывается для того, чтобы отключить логирование в nginx , нужно в конфиге сервера писать следующим образом эти параметры:
access_log off;
error_log off;
после этого логи перестали писаться на диск.

Tags:


Постфикс будет хранить базу пользователей в mysql, администрирование юзеров будет осуществляться через PostfixAdmin
Необходимо установить следующие пакеты postfix postfix-mysql dovecot-pop3d.
Затем стоит установить PostfixAdmin, его установку описывать не буду, она проста.
Для использования БД необходимо создать пользователя postfix, пароль postfix, название БД - mail, можно использовать иные, статья будет описана для этого случая.
Также стоит отметить что в mysql необходимо сделать бинд на 127.0.0.1, т.к. postfix выполняет chroot и не может работать с сокетом mysql, именно поэтому в конфигах postfix указывается 127.0.0.1
Все каталоги с почтой должны принадлежать пользователю mail группе mail.
Далее приступим к конфигурированию сервера postfix

Задача: Весь трафик http https и ftp пустить через одного провайдера, остальной трафик пустить через другого.
Для этого будем использовать возможности маркировки пакетов в iptables и маршрутизацию при помощи iproute2
В соответствии с настройками маршрутизации, по умолчанию весь трафик направляется в интерфейс для остального трафика, необходимо выделить нужный трафик и отправить в другой шлюз.

В /etc/iproute2/rt_tables добавляем новую таблицу 201 newif
Далее добавляем следующие правила
ip rule add fwmark 1 table newif
ip route add default via 192.168.10.2 dev eth2 table newif
где 192.168.10.2 это шлюз провайдера, через который пойдет http трафик.
После этого в iptables прописываем правила для маркировки нужных пакетов
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 80 -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 443 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -s 192.168.6.0/255.255.255.0 -p tcp -m tcp --dport 80 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -s 192.168.6.0/255.255.255.0 -p tcp -m tcp --dport 20:21 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -s 192.168.6.0/255.255.255.0 -p tcp -m tcp --dport 443 -j MARK --set-mark 0x1
Пакеты в цепочке output маркируются для того, чтобы трафик squid также подчинялся правилам и отправлялся по нужному маршруту.
  • Leave a comment
  • Add to Memories

Для включения возможности вывода списка файлов в конфиг nginx прописать: autoindex  on
location / {
                        root /media/files/ftp;
                        autoindex  on;
                        autoindex_exact_size off;
 }
autoindex_exact_size off; - обеспечивает вывод размеров файлов в человекочитаемом формате.

Конфигурация frontend на nginx


Для включения проксирования запросов к бэкенду, необходимо в конфиг nginx добавить следующие опции:

server {
                listen 80;
                server_name example.org;

                location / {

                proxy_pass http://127.0.0.1:81/;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;

                }
}

mod_rewrite в nginx


Назрела необходимость в использовании mod_rewrite совместно с веб сервером nginx для динамической генерации изображений.
Итак, имеется скрипт на сайте в папке относительно корня веб сайта /forum/ub/ub.php?u=5; необходимо получить вид ссылки /forum/ub/5.png, для этого добавляем в конфиг следующий блок.
location /forum/ub/ {
            rewrite ^/forum/ub/(.*).png$ /forum/ub/ub.php?u=$1;
        }

Если ставить nginx из репозитариев ubuntu, то мы получим версию 0.5.37, что весьма далеко от последней стабильной, поэтому будем ставить из исходников.
Для начала необходимо скачать nginx на странице загрузки оф. сайта http://sysoev.ru/nginx/download.html я выбрал последнюю стабильную версию 0.6.32
Далее для установки понадобится традиционно build-essential и библиотеки необходимые для работы nginx:
libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev
их необходимо ставить прямо из репозитариев.
Затем стандартно
./configure
make
make install
nginx по умолчанию устанавливается в /usr/local/nginx/ я не стал менять после установки, а просто для удобства сделал ссылку в каталоге /etc nginx -> /usr/local/nginx/conf/ и составил старт скрипт в /etc/init.d/nginx следующего содержания:
  • Leave a comment
  • Add to Memories

Имеем: 1 сервер - стоит роутером на границе между локалкой и внешней сетью, выпускает локалку во внешнюю сеть.
2 сервер - стоит в локалке за фаерволом.
На первом сервере организован виртуальный хостинг, задача - чтобы с определенного виртуального хоста открывался сайт расположенный на 2 сервере.

Для этого в конфиге виртуального хоста в Apache пишем следующее
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyRequests Off
ProxyPass / http://192.168.168.5:80/
ProxyPassReverse / http://192.168.168.5:80/
CustomLog /var/www/web48/log/proxy_log common
После этого все запросы на этот виртуальный хост будут проксированы на http://192.168.168.5:80/

На 2 сервере запущен высоконагруженный ресурс и в качестве веб-сервера установлен lighttpd, для того чтобы сервер видел реальные ip адреса пользователей, а не адрес первого сервера необходимо следующим образом изменить конфиг lighttpd.
Первым делом необходимо добавить поддержку модуля mod_extforward , затем в конфиге дописать следующий параметр
extforward.forwarder = ("192.168.168.1" => "trust")
после этого все проксируемые запросы с 192.168.168.1 будут автоматически исправляться и 2 сервер будет видеть реальные ip адреса пользователей.

Для установки понадобятся сам lighttpd, php и php-cgi.
Итак, включаем поддержку mod_fastcgi в lighttpd и прописываем следующую информацию в конфиге:

fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/tmp/php.socket"
                 )))
после этого перезапускаем lighttp и радуемся работе php.