Установка и настройка прокси сервера OOPS
OOPS, модульный, многопотоковый прокси сервер, целью проекта является создание быстрого, устойчивого прокси сервера. Благодаря тому, что в качестве хранилища, OOPS использует файлы, представляющие собой простейшую псевдо файловую систему, с btree индексом для быстрого доступа к объектам. OOPS не требует никаких дополнительных программ, все действия над хранилищем и т.п. выполняются модулями.
Приступим к установке:
cd /usr/ports/www/oops make install clean
Перед сборкой вызывается диалог настройки:
┌────────────────────────────────────────────────────────────────────┐ │ Options for oops 1.5.24_6 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [ ] GIGABASE GigaBase storage │ │ │ │ [ ] DB4 Berkeley DB v4 storage │ │ │ │ [ ] MYSQL MySQL auth support │ │ │ │ [ ] PGSQL PostgreSQL auth support │ │ │ │ [X] PCRE PCRE support │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
GigaBase storage – эта настройка позволит вам создавать большие хранилища, больше 2 гигабайт.
Berkeley DB v4 storage – будет использоваться для хранилища формат базы DB v4.
MySQL auth support – установка модуля проводящего авторизацию через базу MySQL.
PostgreSQL auth support – модуль для авторизации через базу PostgreSQL.
PCRE support – поддержка расширенный (перл) регекспов для обработки url и тд и тп в OOPS.
Настройка:
Как пример настройки приведу свой рабойчи конфиг. У меня OOPS используется как прокси сервер для локальной сети без авторизации, и если я подключаюсь из вне своей сети – то будет использоваться авторизация.
Файл настроек /usr/local/etc/oops/oops.cfg:
#DNS сервер nameserver 127.0.0.1 #Порт на котором слушает сервер http_port 3128 icp_port 3130 userid oops #Лог файлы logfile /var/log/oops/oops.log { 3 1m } unbuffered accesslog /var/log/oops/access.log { 3 1m } unbuffered pidfile /var/run/oops/oops.pid #Это очень интересный файл если просмотреть его с помощью cat #то увидим статистику использования сервера statistics /var/run/oops/oops_statfile #Количество используемой памяти mem_max 64m lo_mark 8m default-expire-value 7 ftp-expire-value 7 max-expire-value 30 last-modified-factor 5 default-expire-interval 1 icp_timeout 1000 disk-low-free 3 disk-ok-free 5 force_http11 force_completion 75 maxresident 1m insert_x_forwarded_for yes insert_via yes fetch_with_client_speed yes acl MSIE header_substr user-agent MSIE acl ADMINS src_ip 127.0.0.1 acl PURGE method PURGE acl CONNECT method CONNECT acl SSLPORT port 443 acl LOCAL_NET 192.168.0.0/24 acl_deny PURGE !ADMINS acl_deny CONNECT !SSLPORT stop_cache ? stop_cache cgi-bin local-networks 10/8 192.168.0.0/24 #Описываем свою сеть. Та сеть которой не требуется авторизация group mynet { networks 192.168/16 127/8; networks_acl LOCAL_NETWORKS !BAD_NETWORKS ; badports [0:79],110,138,139,513,[6000:6010] ; miss allow; http { allow dstdomain * ; } } #Для всех остальных включаем авторизацию group auth { networks 0/0; badports [0:79],110,138,139,513,[6000:6010]; auth_mods passwd_file; http { allow dstdomain * ; } } group world { networks 0/0; badports [0:79],110,138,139,513,[6000:6010]; http { deny dstdomain * ; } icp { deny dstdomain * ; } } storage { path /home/share/oops_storage/oops_storage ; size 20m ; } module lang { default_charset koi8-r CharsetRecodeTable windows-1251 /usr/local/etc/oops/tables/koi-win.tab CharsetRecodeTable ISO-8859-5 /usr/local/etc/oops/tables/koi-iso.tab CharsetRecodeTable ibm866 /usr/local/etc/oops/tables/koi-alt.tab CharsetAgent windows-1251 AIR_Mosaic IWENG/1 MSIE WinMosaic (Windows (WinNT; CharsetAgent windows-1251 (Win16; (Win95; (Win98; (16-bit) Opera/3.0 CharsetAgent ibm866 DosLynx Lynx2/OS/2 } module err { # error reporting module # template template /usr/local/etc/oops/err_template.html # Language to use when generate Error messages lang ru } #Модуль отвечающий за авторизацию module passwd_file { realm oops scheme Basic file /usr/local/etc/oops/passwd template /usr/local/etc/oops/auth_template.html } module redir { file /usr/local/etc/oops/redir_rules template /usr/local/etc/oops/redir_template.html myport 3128 } module oopsctl { socket_path /var/run/oops/oopsctl html_refresh 300 } module vary { user-agent by_charset accept-charset ignore }
Настройки в основном сохранены по умолчанию и за все время работы изменений не требовали.
Для того что бы создать файл /usr/local/etc/oops/passwd, необходимо воспользоваться утилитой htpasswd, которая обязательно входит в комплект apache.
После того, как файл настроек сохранен, необходимо отредактировать /etc/rc.conf, что бы oops стартовал:
oops_enable="YES"
Теперь можно запускать:
/usr/local/etc/rc.d/oops start
На этом настройка закончена.
На этом все. Можно пользоваться.



