Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  hosting
  mod_gzip
  mod_log_sql
  mod_geoip
  mod_bandwidth
  mod_accounting
  mod_bunzip2
  mod_mp3
  mod_shapvh
  mod_limitipconn
  mod_sqlinclude
  mod_auth_imap
  webalizer
  Apache + SSL
  auth_ldap
  Настройка AWStats
  apache 2.0
  mod_auth_external
  CMS - TYPO3
  phpBB-2/3
  mod_ntlm
  mod_ntlm2
  Nginx+php+fcgi
  OTRS на Apache1
  OTRS на Apache20
  ApacheStats
  mod_evasive
  Lighttpd
  nginx+php-fpm+mysql
  php + mssql
  MySQL + кодировки
  svn+apache+trac
  php5-oci8
  Lighttpd + Apache
  CMS Drupal 6.9
  Apache22+MySQL
  Оптимизация хоста для CMS
  блокировка spam на www
  PostgreSQL 8
  Apache 22 + PHP5 + suPHP
  lighttpd + mod_uploadprogress
  VirtualBox + phpVirtualBox
  DNS API
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> WWW —> nginx+php-fpm+mysql

Веб сервер на много коннектов и высокую нагрузку (nginx+php-fpm+mysql)

Автор: nikll.


Предисловие.

Вот хочу поделится с коллегами своими наработками, думаю они многим пригодятся.

1. Начнем с подготовки фри к постановке ее на веб сервер.

Сетапим на сервер фрю семерку архтиктуры amd64 (можно и i386 но там надо делать PAE ядро и расширять адресацию), обнавляем исходники
nice -20 csup /usr/src/csup

ee /usr/src/csup
*default host=cvsup6.ru.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7
*default delete use-rel-suffix
*default compress

src-all
ports-all tag=.
doc-all prefix=/usr/src tag=.

Правим конфиги
ee /etc/make.conf
# оптимизация под мой камень, применяется везде где только используется команда make, 
# позваляет получить немного лишних процентов производительности
CPUTYPE?=core2
NO_PROFILE=yes
NO_GAMES=yes
DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R
WITHOUT_X11=YES
NO_X11=YES
WITH_IDEA=yes
MAKE_IDEA=yes
WITHOUT_GAMES=yes
WITHOUT_INET6=yes
WITHOUT_INET6_SUPPORT=yes
WITHOUT_PROFILE=yes
WITHOUT_IPV6=yes

PORTSDIR?=      /usr/ports

DEFAULT_MYSQL_VER=51
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql51-server
WITH_PROC_SCOPE_PTH=yes  # треды
BUILD_OPTIMIZED=yes      # флаги оптимизации компилятору
# дает небольшой прирост производительности и независимость от внешних библиотек
BUILD_STATIC=yes
.endif
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql51-client
WITH_PROC_SCOPE_PTH=yes
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
.endif

ee /etc/src.conf
WITHOUT_INET6=yes            # рубим ipv6, рассадник дыр в безопастности и глюков 
WITHOUT_INET6_SUPPORT=yes    # практическая его полездность будет еще не скоро...
WITHOUT_PROFILE=yes          

и пересобираем систему

cd /usr/src
nice -20 make -j6 buildworld

Пока собирается система можно занятся конфигом ядра в следующщей консоле (или другом ssh терминале).
cd /usr/src/sys/amd64/conf
cp GENERIC SERVER64
ee SERVER64

И правим ядро для наших целей, я например викидываю от туда дебаг, ipv6, и все не нужные мне драйвера
(nfs ntfs fat все рейды и сетевухи которых у меня нету fairwair usb wlan), и добавляю следующщее

options         SC_HISTORY_SIZE=8192    # чтобы в консоли можно было далеко листать историю
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=4000
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
options         DUMMYNET
options         ACCEPT_FILTER_DATA        # фильтры для nginx
options         ACCEPT_FILTER_HTTP        # ...
options         HZ=1000
options         DEVICE_POLLING

После того как сборка мира в первой консоле успешно закончится, можно приступать к сборке и установке нового ядра
nice -20 make -j2 kernel KERNCONF=SERVER64  # с -j6 иногда не собирается почемуто...

Так как хороший одмин должен быть ленивым, я создаю в корне скриптик
ee /upgrade && chmod 755 /upgrade
#!/bin/sh
fsck -p
mount -u /
mount -a
cd /usr/src
adjkerntz -i 
mergemaster -p
make installworld &&\
make delete-old &&\
mergemaster -i

Цепляем ip-kvm, ну или топаем туда где стоит сервер (нужна консоль), и перезагружаем его в однопользовательский режим.
nextboot -o "-s" -k kernel && reboot

Загружается система, на приглашение к выбору шела нажимаем Enter и после того как появиться консоль вводим
/upgrade && exit

mergemaster поспрашивает вас о конфигах, make delete-old поспрашивает о удалении старых файлов, после того как все вопросы будут отвечены и система установленна шел закроется и продолжиться нормальная загрузка уже новой системы.

2. Устанавливаем софт

Собственно ставим сам nginx, на запросы отвечаем так:
cd /usr/ports/www/nginx/ ; nice -20 make install clean
[ ] DEBUG                 Enable nginx debugging
[ ] GOOGLE_PERFTOOLS      Enable google perftools module
[X] HTTP_MODULE           Enable HTTP module
[X] HTTP_ADDITION_MODULE  Enable http_addition module
[X] HTTP_DAV_MODULE       Enable http_webdav module
[X] HTTP_FLV_MODULE       Enable http_flv module
[X] HTTP_PERL_MODULE      Enable http_perl module
[X] HTTP_REALIP_MODULE    Enable http_realip module
[X] HTTP_REWRITE_MODULE   Enable http_rewrite module
[X] HTTP_SSL_MODULE       Enable http_ssl module
[X] HTTP_STATUS_MODULE    Enable http_stub_status module
[X] HTTP_SUB_MODULE       Enable http_sub module
[ ] MAIL_MODULE           Enable IMAP4/POP3/SMTP proxy module
[ ] MAIL_IMAP_MODULE      Enable IMAP4 proxy module
[ ] MAIL_POP3_MODULE      Enable POP3 proxy module
[ ] MAIL_SMTP_MODULE      Enable SMTP proxy module
[ ] MAIL_SSL_MODULE       Enable mail_ssl module
[X] WWW                   Enable html sample files

Дальше ставим мускул и пхп:
cd /usr/ports/databases/mysql51-server/ ; nice -20 make install clean &&\
cd /usr/ports/lang/php5/ ; nice -20 make install clean

[X] CLI        Build CLI version
[X] CGI        Build CGI version
[ ] APACHE     Build Apache module
[ ] DEBUG      Enable debug
[X] SUHOSIN    Enable Suhosin protection system (not for jails)
[X] MULTIBYTE  Enable zend multibyte support
[ ] IPV6       Enable ipv6 support
[X] MAILHEAD   Enable mail header patch
[X] REDIRECT   Enable force-cgi-redirect support (CGI only)
[X] DISCARD    Enable discard-path support (CGI only)
[X] FASTCGI    Enable fastcgi support (CGI only)
[X] PATHINFO   Enable path-info-check support (CGI only)

Cтавим сопутствующщий софт:
cd /usr/ports/lang/php5-extensions/ ; nice -20 make install clean

Выбираем себе нужные модули для пыха.

И не забываем про ZendOptimizer (довольно часто попадаются зазенденные скрипты, поэтому всегда втыкаю его докучи, авось пригодится)
/usr/ports/devel/ZendOptimizer/ ; nice -20 make install clean

Ставим phpMyAdmin (вечное требованние программеров на пыхе, в консоли для них не кошерно...)
/usr/ports/databases/phpmyadmin/ ; nice -20 make install clean

Ставим wget из /usr/ports/ftp/wget  (это типа консольная качалка такая)
скачиваем порт php-fpm под фрю (я же говорил уже что хороший одмин он ленивый, и с патчами в исходниках ковырятся ему должно быть лень если все и так хорошо работает), распаковываем его в /usr/ports/lang/php5-fpm идем туда и сетапим его:
cd /usr/ports/ftp/wget ; nice -20 make install clean &&\
cd /usr/ports/lang &&\
wget http://php-fpm.anight.org/downloads/freebsd-port/php5-fpm-0.5.9.tar.gz &&\
tar xfz php5-fpm-0.5.9.tar.gz &&\
cd php5-fpm &&\
nice --20 make install clean

[X] CLI        Build CLI version
[ ] DEBUG      Enable debug
[X] SUHOSIN    Enable Suhosin protection system (not for jails)
[X] MULTIBYTE  Enable zend multibyte support
[ ] IPV6       Enable ipv6 support
[X] MAILHEAD   Enable mail header patch
[X] PATHINFO   Enable path-info-check support (CGI only)

Ну вот как бы и усе как бы для голого веб сервера все уже готово, переходим к настройке.

3. Конфигурируем

Мой конфиг nginx:
less /usr/local/etc/nginx/nginx.conf
# рекомендуют делать по количеству ядер
# но время отклика реально уменьшяется если запутить побольше воркеров,
# т.к. у меня памяти много сделал сразу 100
worker_processes 100;
# приоретет воркеров, сделал повыше 
# чтобы из за медленных скриптов и корявых
# мускульных запросов статика отдавалась без лагов
worker_priority -5;
worker_rlimit_nofile 51200;

events {
    worker_connections  51200;
    use                 kqueue;
}

http {
    include             mime.types;
    default_type        application/octet-stream;

    log_format  main    '$remote_addr - $remote_user [$time_local] $request '
                        '"$status" $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

    server_names_hash_bucket_size       512;
    sendfile            on;
    tcp_nopush          on;
    keepalive_timeout   70 30;
    send_timeout        30s;
    reset_timedout_connection   on;
    resolver            127.0.0.1;
    resolver_timeout    10s;

    open_file_cache             max=100000 inactive=40s;
    open_file_cache_valid       60s;
    open_file_cache_min_uses    2;
    open_file_cache_errors      on;

    server {
        listen          80;
        server_name     www.ru;
        charset         koi8-r;
        location / {
            root        /usr/local/www/nginx;
            index       index.html index.htm;
        }
    }

    server {
        # фильтр позволяет отфильтровывать 
        # все не хттп соеденения до их установки на уровне ядра 
        # (собираются все пакеты анализируется GET загаловок, 
        # если его нет соеденение отбрасывается, если есть то соедененине 
        # появляется в системе и нгинксе, оч полезно от примитивного доса).
        listen          80  default accept_filter=httpready;

        server_name     www.mysite.ru mysite.ru

        charset windows-1251;

        access_log      /home/igrosoft/access_log       main;
        error_log       /home/igrosoft/error_log        error;

        location / {
            root        /home/site;
            index       index.html index.htm index.php;
        }

        location /mrtg/ {                         # это mrtg
            alias       /usr/local/www/mrtg/;
            index       index.html index.htm;
            auth_basic  Admin;
            auth_basic_user_file /usr/local/www/mrtg/.htpasswd;
        }
        # а это для phpmyadmin, чтобы норально обрабатывались пхп скрипты
        # надо создать линк из основной директории коммандой
        # ln -s /usr/local/www/phpMyAdmin /home/site/.,ak,234sfyf34.:,.s
        location /.,ak,234sfyf34.:,.s/ {                               
            alias       /usr/local/www/phpMyAdmin/;
            index       index.html index.htm index.php;
            auth_basic  Admin;
            auth_basic_user_file /usr/local/www/phpMyAdmin/.htpasswd;
        }
        # передаем обработку пхп скриптов на php-fpm
        location ~* \.php$ {
            fastcgi_pass        unix:/tmp/php-fpm.sock;
            fastcgi_index       index.php;
            fastcgi_param       SCRIPT_FILENAME  /home/site$fastcgi_script_name;
            include             fastcgi_params;
        }

        location ~ /\.ht {     # закрываем доступ к файлам .htpasswd
            deny        all;
        }

        error_page      500 502 503 504         /50x.html;
        location = /50x.html {
            root        /usr/local/www/nginx-dist;
        }
        # с этой странички мы будем брать статистику по нгинксу для мртг
        location /nginx_status {
            stub_status on;
            access_log   off;
            allow 127.0.0.1;
            deny all;
        }




    # HTTPS
    server {
        listen       443;
        server_name  localhost;

        ssl                  on;                   # задаем настройки для ssl 
        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.key;
        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;

        server_name     www.myserver.ru myserver.ru

             # а дальше все тоже самое описание location'ов
             # аналогичное тому что было указанно выше 

    }
}

Теперь поправим конфиг у fpm'a
ee /usr/local/etc/php-fpm.conf
я там изменил только следующщие строчки:
   <!-- меняем сокет, вместо tcp'шного делаем -->
   <!-- локальный чтобы лишний раз стек не напрягать -->
<value name="listen_address">/tmp/php-fpm.sock</value>

   <!-- устанавливаем количество процессов php-cgi -->
   <!-- отнестить к этому нужно внимательно т.к. -->
   <!-- именно столько максимум php скриптов сможет выполняться одновременно-->
<value name="max_children">120</value>

   <!-- Очень полезная для оптимизации скриптов и мускульных запросов фича -->
   <!-- записывает в лог все данные о скрипте который -->
   <!-- выполняется дольше указанного времени -->
<value name="request_slowlog_timeout">5s</value>
<value name="slowlog">/var/log/php-slow.log</value>

   <!-- сколько запросов выполнит один cgi процесс прежде чем его перезапустят -->
<value name="max_requests">1500</value>

Пхп каждый конфигурит себе сам, но на основе длительного ковыряния с кучей серверов у меня получилось оптимальным вот это:
ee /usr/local/etc/php.ini
[PHP]
engine = On
zend.ze1_compatibility_mode = Off
short_open_tag = On
asp_tags = Off
precision    =  14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func=
serialize_precision = 100
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
disable_classes =
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M               ; увеличиваем лимит по памяти для "тяжелых" скриптов
error_reporting  =  E_ALL & ~E_NOTICE
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 10240
ignore_repeated_errors = On
ignore_repeated_source = On
report_memleaks = On
track_errors = On
variables_order = "EGPCS"
register_globals = On
register_long_arrays = Off
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 32M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = On
file_uploads = On
upload_max_filesize = 800M
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

[Syslog]
define_syslog_variables  = Off

[mail function]
SMTP = localhost
smtp_port = 25

[SQL]
sql.safe_mode = Off

[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1

[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off

[MySQLi]
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off

[mSQL]
msql.allow_persistent = On
msql.max_persistent = -1
msql.max_links = -1

[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0

[Sybase]
sybase.allow_persistent = On
sybase.max_persistent = -1
sybase.max_links = -1
sybase.min_error_severity = 10
sybase.min_message_severity = 10
sybase.compatability_mode = Off

[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10

[bcmath]
bcmath.scale = 0

[Informix]
ifx.default_host =
ifx.default_user =
ifx.default_password =
ifx.allow_persistent = On
ifx.max_persistent = -1
ifx.max_links = -1
ifx.textasvarchar = 0
ifx.byteasvarchar = 0
ifx.charasvarchar = 0
ifx.blobinfile = 0
ifx.nullformat = 0

[Session]
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 1000
session.gc_maxlifetime = 256000
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 18000
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[Tidy]
tidy.clean_output = Off

[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400

[Zend]
zend_optimizer.optimization_level=2   ; 2 потому что на архетитуре amd64 
                                      ; при дефолтном значении 15 кладет пых в корку
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"

Тепер переходим к тюнингу tcp стека:
ee /etc/sysctl.conf
net.inet.tcp.blackhole=2      # включаем черные дыры для tcp
net.inet.udp.blackhole=1      # и udp
kern.ipc.nmbclusters=65536    # увеличиваем лимиты
kern.ipc.somaxconn=32768      
kern.ipc.maxsockets=204800
kern.maxfiles=256000
kern.maxfilesperproc=230400
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0
net.inet.tcp.maxtcptw=40960
# самый на мой взгляд важный параметр, субьективно:
# при уменьшении уменьшается количество вейтов, сервер лудьше держит нагрузку
# при увеличении реже рветься связь на плохих каналах, нагрузка возрастает
net.inet.tcp.msl=40000
net.inet.tcp.finwait2_timeout=40000
net.inet.tcp.syncookies=1
net.inet.tcp.sack.enable=1
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.fast_finwait2_recycle=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
kern.polling.enable=1
kern.polling.burst_max=1000
kern.polling.each_burst=50
net.inet.icmp.icmplim=5000

ee /boot/loader.conf
net.inet.tcp.syncache.hashsize=1024
net.inet.tcp.syncache.bucketlimit=100
net.inet.tcp.tcbhashsize=4096

По оптимизации стека и настройку sysctl можно почитать следующщее:
http://www.opennet.ru/base/net/tune_freebsd.txt.html
http://www.lissyara.su/?id=1147

По настроке nginx:
http://sysoev.ru/nginx/docs/
http://www.lexa.ru/nginx-ru/

Ну и напоследок гугл еще никто не отменял ;-)


Уф, великовата уже статейка получилась, пора бы и закруглятся, ждите продолжений.



Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=3.

размещено: 2008-04-18,
последнее обновление: 2008-11-21,
автор: nikll

оценить статью:

arksu, 2008-11-20 в 13:54:31

норм статья! побольше бы таких глубоких материалов.
собрано много много житейского опыта на продакшн серверах )))

RWH, 2008-11-20 в 14:10:50

+5

Паха, 2008-11-20 в 14:33:13

Вот! А я искал это! Спасибо! Побольше пиши))
Вся правильно и работоспособно! Как и все твои статьи... добавил в свой архивчик статью

gmn, 2008-11-20 в 18:16:07

фильтры в ядро вкомпиливать не обязательно.
Можно загрузить так:
/boot/loader.conf
accf_data_load="YES"
accf_http_load="YES"

nikll, 2008-11-20 в 18:37:21

Можно и не вкомпиливать, но если ядро всеравно пересобирать, и фильтры всеравно понадобяться почему бы и нет?

Medved, 2008-11-20 в 20:09:27

worker_connections  51200
и
open_file_cache max=100000

ужасно больши и никак не влезут в worker_rlimit_nofile и tcp4 (при fastcgi_pass)

nikll, 2008-11-20 в 20:28:32

Про worker_connections я так и не нашел ни одного нормлаьного обьяснения что это такое и как этот параметр правильно настраивать.
Про open_file_cache на мой сугубо неопытный взгляд все в порядке, http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#open_file_cache тут описание этой директивы. Вопрос почему бы и нет? Ну будет у меня 100тыс записей о файлах и что такого, на тех серверах как минимум 4гб озу, ее хватает за глаза...
P.S. у меня аська есть 322344962, плиз, если есть маленько свободного времени, проконсультироваться хочу :)

nikll, 2008-11-20 в 20:45:38

Вот я вспомнил где я нашел рекомендацию к выставлению большого значения worker_connections
http://www.lexa.ru/nginx-ru/msg06936.html

sect0id, 2008-11-21 в 13:09:36

спасибо хорошая статья
опыт виден

location /.,ak,234sfyf34.:,.s/
это так прячешь?

nikll, 2008-11-21 в 14:58:34

Благодарю :).
да примерно так, просто был опыт нахождения попыток перебора логинов паролей в логах (массовы записи о неудачной аутентификации), вот и сделал юрл покрепче :)

Андрей, 2009-01-14 в 19:14:07

Какое количество соединений в секунду держит данный конфиг?

nezabor, 2009-01-16 в 22:03:34

open# wget http://php-fpm.anight.org/downloads/freebsd-port/php5-fpm-0.5.9.tar.gz
--2009-01-16 22:02:46—  http://php-fpm.anight.org/downloads/freebsd-port/php5-fpm-0.5.9.tar.gz
Resolving php-fpm.anight.org... 89.235.197.21
Connecting to php-fpm.anight.org|89.235.197.21|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2009-01-16 22:02:50 ERROR 404: Not Found.

torki, 2009-01-16 в 23:37:01

Статья просто бомба!!! Все возможные спасибы!!!
Вот как-бы наладить обмен умными мыслями, блин, фантазии на такие статьи не хватает:(

nikll, 2009-01-18 в 9:49:26

http://php-fpm.anight.org/downloads/freebsd-port/php-5.2.8-fpm-0.5.10.tar.gz
обновился порт, чо нельзя было зайти и посмотреть?

Anik777, 2009-01-29 в 17:02:06

Ух, спасибо тебе nikll - мега статья, очень полезная и объемная. Отдельное спасибо за оттюненые конфиги php и nginx.
А какую примерно нагрузку держит такая сборка???

nikll, 2009-02-06 в 5:07:57

Тестировал на сервере 2xXeonQuad 8Gb RAM, на гигабитном линке отдает в срендем 90Мбайт динамики с учетом что примерно половина нагрузки ложится на мускул.
Загрузка сначала подскакивает гдето до 70% по процу и 3гб озу потом увеличевается кеш, отжирается еше 2гб озу, но проц грузит менше (40-50%). Нагрузка создавалась синтетическая наклепал пару пхп скриптов которые манипулируют с мускулом и нагружал все это дело с пяти других аналогичных серверов при помощщи ApacheBench и несколько экземпляров из портов.
В пике получалось более 300тыс соеденений.....

Le1, 2009-02-06 в 9:21:35

Статья супер, то что надо, актуальная - т.к. если сервак крутит только апач, то в полне отлично перейти на nginx, автору спасибо и зачет !

gaara, 2009-02-18 в 3:24:41

mysql 5.1 на сильнонагруженом сервере - зло

nikll, 2009-02-18 в 9:57:11

А вы надо пологать тока оракл юзаете....
Если правильно настроить мускул и железо достаточно мощное то мускул соовсем не мешает, а даже наоборот сервер с локальным мускулом работает быстрее чем с мускулом который на выделенном сервере...

gaara, 2009-02-21 в 3:22:03

nikll,

не, я не про то - сырая ветка 5.1 еще, на синтетических тестах все в порядке, поставили в продакшн - падения (segfault-ы), непонятно почему висящие в состоянии locked запросы и т.д.

лучше пока сидеть на 5.0, хотя и в 5.1 много вкусностей

а даже наоборот сервер с локальным мускулом работает быстрее чем с мускулом который на выделенном сервере...

это пока он не начинает жрать ресурсы, которые могли бы пойти на что-нибудь полезное, например на те же пхп-шные скрипты

xmaster !, 2009-03-01 в 21:47:53

net.inet.tcp.msl=40000        

немного ли ?  
у меня 4500

bzik, 2009-03-16 в 21:15:28

Спасибо за статью. Очень пригодилась!!!
если кому то интересен мониторинг то вот довольно неплохая статья.
http://blog.kovyrin.net/2006/04/29/monitoring-nginx-with-rrdtool/
советую почитать коменты у кого возникнут проблемы.

zulus, 2009-03-19 в 22:51:27

Отличная статья, большое человеческое спасибо за неё автору !!!

Арт, 2009-03-21 в 19:46:58

Спасибо за статью

titan, 2009-04-27 в 16:41:30

  Не используйте параметр sendfile_max_chunk 256k;
без предварительного понимания что он делает и зачем.
С текущим значением у меня сетевая карточка дропала 50% данных под нагрузкой. Без нагрузки работало все идеально.
FreeBSD 7.1 amd64 nginx 6.3.5

Psixozzz, 2009-05-22 в 9:57:42

автору надо учебник русского языка подарить. Лучше два. А в целом статья ничего так.

nikll, 2009-05-24 в 13:15:49

ыгы а тебе учебник по фре :), каждый спец в своей области.

opt1k, 2009-06-13 в 9:36:04

зачем wget? чем fetch не устроил?

kav, 2009-06-13 в 14:14:06

много спорных моментов в статье, с этим всем лучше ломится в рассылку по nginx-у
там русскоязычное, вменяемое комьюнити

Wic, 2009-07-13 в 22:18:13

А php-fpm из портов не ставится что ли? зачем такой изврат?

Yuna, 2009-07-13 в 22:24:58

Вообще-то, если вы не знали, php-fpm НЕ включен по умолчанию в порты, и потому порт его нужно скачивать ОТДЕЛЬНО.

xmaster, 2009-08-12 в 8:55:05

вышла поновее счас буду тестировать
http://php-fpm.org/downloads/freebsd-port/php-5.2.10-fpm-0.5.13.tar.gz

demonsked@gmail.com, 2009-11-06 в 17:05:29

А где порт для 5.2.11 взять? Со старым не собирается. А как из исходников собрать я не понял.

nikll, 2009-11-06 в 17:46:46

Возьми да сам сделай :), там ничего сложного, проанализируй различия между php5 и php5-fpm (последний из них делал я), вот те линк на свежий патч http://php-fpm.org/downloads/php-5.2.11-fpm-0.5.13.diff.gz, вперед, как сделаеш вышли его на mike503@gmail.com, выложат на сайт :).

playnet, 2009-11-19 в 16:45:22

обнАвляем, позвАляет.. ппц, аффтар, что у тебя в году по русскому? 3 с натяжкой?

KaMa-CyTpA, 2009-11-19 в 17:17:59

комрат
тут зырят нина форму ана садиржанийе.
токма эт тожэ для избранных.
тут кагбэ пакрасившэ сказать... карочи для тибя тут калашный ряд.

lissyara, 2009-11-19 в 17:23:08

=)
тем не менее, он тоже прав.
Как минимум стоит после написания самому целиком читать.

nikll, 2009-11-19 в 21:51:09

Блин все такие умные как полгяжу :), я уже писал выше что каждый в своей области достигает чегото, я например довольно профессиональный сисадмин и программист на куче осей и языков, а вы я как погляжу только русский язык профессионально освоили.
P.S. lissyara, я читал то что я написал, если тебя глубоко оскорбляют мелкие синтаксические ошибки то можеш их исправить. Если статья из за этих ошибок теряет свою актуальность можеш смело ее снести я тебе разрешаю.

lissyara, 2009-11-19 в 21:55:26

Мне - вообще пофиг. Сам с ошибками пишу, и очепятками.
Тем не менее, до публикации статьи даю линк на форуме, народ ошибки указывает.
Чтоб в камменты не гадили =))

Александр, 2009-12-09 в 20:32:43

Используйте Firefox - там есть проверка на орфографию.. и проблем не будет! кроме ошибок - бывают опечатки..

По статье - можно использовать перечень параметров, но не их значения :)

по моим собственным наблюдениям - результаты при одинаковых настройках.. будут разные для разных сайтов (что на них стоит в качестве прикладного?)

sun, 2009-12-10 в 8:35:26

Статья зачетная афтор спс! ))) Правда запарился искать порт php-fpm-0.6-5.2.11, пол дня убил чтоб найти )))

baton4eg, 2009-12-28 в 10:17:04

сам нашёл, а ссылочку ?
http://groups.google.ru/group/highload-php-ru/browse_thread/thread/8c36cd8d7c5709db?fwc=2&pli=1

paranoidchaos, 2010-01-22 в 11:41:41

register_globals = On

ставить не надо

nikll, 2010-01-22 в 12:16:18

По поводу надо не надо register_globals советую погуглить, как правило в большенстве свежего софта ненужен, но бывают случаи когда без него как минимум придется переписать половину уже отлаженного и рабочего кода который писал незивестно кто и когда.

paranoidchaos, 2010-01-22 в 12:51:38

))))

тот кто использовал register_globals ваще понятия не имеет о безопасности

вам всё же придётся переписывать скрипты

This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

paranoidchaos, 2010-01-22 в 12:53:20

погуглил

http://www.citforum.ru/internet/php/register_globals/

nikll, 2010-01-22 в 13:11:07

Да не мне, я всеголиш одмином был когда эту статью писал, в коде который пишу лично я такого бреда нету.
Кста о баранах, если не баран то перед работой со своими переменными ты их обнуляеш, иначе пых ругаетсо, соответсвенно register_globals влияет на безопастность только в быдлокоде.

This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. - вкурсе и очень рад этому, ибо $_GET['param'] куда выразительней понятней и читабельней чем просто $param который непонятно откуда появился.

Sw%00p aka Jerom, 2010-01-22 в 13:18:54

>>Кста о баранах, если не баран то перед работой со своими переменными ты их обнуляеш, иначе пых ругаетсо

непонял юмора ?????
обнулять, во-первых, можно только численные значения.

во-вторых, да не отрицаю того, что при обьявлении любой переменной сразу же её инициализация - является хорошим тоном программирования.

а то что такой механиз как регистер_глобалс был в пхп говорит о том что его разработчики типичные говнокодеры

Аноним, 2010-01-26 в 0:04:16

Сетапим на сервер фрю семерку

/etc/make.conf
...
NO_PROFILE=yes
NO_GAMES=yes
...
WITH_IDEA=yes
MAKE_IDEA=yes
WITHOUT_GAMES=yes
WITHOUT_INET6=yes
WITHOUT_INET6_SUPPORT=yes
WITHOUT_PROFILE=yes

дальше не читал ... автору читать man src.conf до просветления в голове

nikll, 2010-01-26 в 8:48:20

Для особо одоренных анонимусов через 10 строк ниже
ee /etc/src.conf
WITHOUT_INET6=yes            # рубим ipv6, рассадник дыр в безопастности и глюков
WITHOUT_INET6_SUPPORT=yes    # практическая его полездность будет еще не скоро...
WITHOUT_PROFILE=yes  

На момент выхода фри 7.0 часть параметров необходимо было дублировать в make.conf (до 7.0 src.conf небыло) иначе они не применялись (от пары лишних строк хуже не станет, зато всегда 100% применялись).
Так что читать маны и на основании этого думать что ты самый умный можеш и дальше, а практический опыт некакими манами не заменить.

Аноним, 2010-01-29 в 18:50:51

Дело не в паре лишних строк, дело в том что если Вы пишите статью не задумываясь о том что ее прочитает новичок и сделает так как в ней написано полагая что тот кто ее писал точно знает что надо делать. Может все же пойти новичкам навстречу и чуть-чуть поправить статью, а не ругаться тут неизвестно из за чего?

BTW
"options HZ=1000" - это уже давно по дефолту
"options DEVICE_POLLING" - polling стоит использовать только методом научного тыка, т.к. на разных системах в разных ситуациях с ним бывает лучше и наоборот - все может стать только хуже. Сделайте заметку что стоит почитать man polling и пусть себе человек пробует.

gurt, 2010-02-26 в 16:36:58

Сетапим на сервер фрю семерку архтиктуры amd64
..
ee /etc/make.conf
CPUTYPE?=core2
..
#   Intel x86 architecture:
#       (AMD CPUs)      opteron athlon64 athlon-mp athlon-xp athlon-4
#                       athlon-tbird athlon k8 k6-3 k6-2 k6 k5
#       (Intel CPUs)    core2 core nocona pentium4m pentium4 prescott
#                       pentium3m pentium3 pentium-m pentium2
#                       pentiumpro pentium-mmx pentium i486 i386
#       (Via CPUs)      c3 c3-2
#   Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4
#   AMD64 architecture: opteron, athlon64, nocona, prescott, core2
#   Intel ia64 architecture: itanium2, itanium

nikll, 2010-02-27 в 2:44:49

Ну а в чем проблема то?

AMD64 architecture: opteron, athlon64, nocona, prescott, core2

тобиш под  интеловский 64разнядный камень, во фре оно AMD64 называетсо... в линухе тоже самое x86_64

Pandora, 2010-02-28 в 16:27:29

register_globals = On

о боже

Pandora, 2010-02-28 в 16:59:59

post_max_size = 32M   ; 20M
upload_max_filesize = 64M   ;10M
memory_limit = 256M    ;  128M  ;  увеличиваем лимит по памяти для "тяжелых" скриптов
max_execution_time = 60  ; 30
date.timezone = Europe/Kiev
disable_functions = system,curl_exec,curl_multi_exec,passthru,shell_exec,proc_open,popen,parse_ini_file,show_source,ini_restore,com_load_typelib,symlink

по дефалту

session.save_handler = files

можно менять на eaccelerator если установлен

session.save_handler = eaccelerator

у меня на точке монтирования /usr/ терабайт так что там временная папка

session.save_path = /usr/local/www/tmp/php/session

Pandora, 2010-02-28 в 18:07:33

doc_root = переменная задаёт каталог, в котором размещаются PHP-скрипты. Эта директива разрешает исполнение скриптов только в указанном каталоге и его поддиректориях.

в моем случае doc_root = /usr/local/www/hosts

артур, 2010-05-11 в 19:47:47

Написали бы ман с использованием php 5.3.x (последний на данный момент). Под эту версию пыха нет пакета php-fpm =\ Но каким-то образом поднимают связку.

sabas, 2010-05-12 в 16:05:12

артур,
лови , правда там не так хорошо все разжевано ... но если с "ручками" порядок , соберешь минут за 20 ))) http://forum.nginx.org/read.php?25,73314

артур, 2010-05-14 в 11:06:14

С горем пополам собрал.
Последние версии php-fpm надо прям в исходники пыха влить и вместе с пыхом собирать.
Не понял сам как собралось если честно) Вроде работает.

Pandora, 2010-08-04 в 20:57:54

location ~ \.php$ {
   ....
   try_files $uri =404;
   ...
}

exploit http://site.ru/images/as5df3.jpeg/.php

risk94, 2010-09-12 в 14:45:37

Таки начиная с шестерки параметр kern.polling.enable убран из sysvtl ... и рулится непосредственно через ifconfig:

http://svn.freebsd.org/viewvc/base?view=revision&revision=196267

Fire_Anton, 2010-10-04 в 2:12:15

Ай, Ай, Ай. Чему вы молодежь учите.
reboot - это экстренная перезагрузка, все демоны выбрасываются из памяти и комп идет на перезагрузку.
shutdown -r now - это есть корректная перезагрузка системы с завершением всех демонов, а не выкидывание их из памяти.

Статья супер. ;) Поправь перезагрузку.

maximus, 2010-12-28 в 16:37:18

Ребут - привычка линуховая, ибо что ребут, что шатдаут - уже ни какой разницы нет =) по крайней мере еще когда учился по книжке Slackware 3.1
В целом я бы и до сих пор им пользовался... Если бы не hal начиная с 11 версии.
Получил головняк когда одна из 5 сетевух вышла из строя, после смены долго танцевал с их именами/адресами.. с тех пор всё сетевое - на Фре.
Именно тогда я почуял удовольствие от названия интерфейсов.. em, xl, rl bg и т.д

Илья, 2013-04-11 в 15:49:02

register_globals=On !!!! На костер его!!!

Интересующийся, 2013-04-26 в 8:46:40

Сделал все как описано в статье. Но при попытке открыть .cgi отображается их содержимое, хотя .php нормально выполняются

nikll, 2013-04-26 в 10:54:28

на костер не надо :) там же вполне ясно написанно:
>> Пхп каждый конфигурит себе сам, но на основе длительного ковыряния с кучей серверов у меня получилось оптимальным вот это

Между прочим статья 2008 года, на тех серверах крутился софт котрый требовал register_globals=On вариант переписать ту кучу кала даже не рассматривался.

nginx не умеет .cgi, только fcgi


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-11, Fomalhaut
cvs, svn, portsnap

Обновление сорцов системы через CVS и SVN, портов - CVS и portsnap. Обновление через Proxy-сервер.
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 46 человек
За сегодня было
7155 показов,
1387 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2978 секунд
Из них PHP: 61%; SQL: 39%; Число SQL-запросов: 86 шт.
Исходный размер: 193398; Сжатая: 38755