Оптимизация nginx

Тема в разделе "Администрирование серверов", создана пользователем absurdo, 12 дек 2010.

Модераторы: mefish, stooper
  1. absurdo

    absurdo

    Регистр.:
    22 мар 2007
    Сообщения:
    314
    Симпатии:
    8
    На VDS связка Apache+nginx 0.7.67.
    При предельной нагрузке на сервер вижу сообщение:
    Код:
    404 Not Found
    nginx/0.7.67
    мол сервак не справляется.
    Хотя наблюдается более 200 Мб свободной оперативной памяти. Судя по "top" процессор тоже не загружен на 100%.

    Подскажите какие параметры подкорректировать в конфигах Apache и nginx, чтобы более эффективно использовать оперативную память сервера.
     
  2. ask0n

    ask0n

    Регистр.:
    9 июн 2009
    Сообщения:
    227
    Симпатии:
    63
    При предельной загрузке 404я ошибка - это что-то новенькое. Это не "сервак не справляется", это не найдена запрашиваемая страница.
    В указанной связке, когда не справляется бэкенд, фронтенд выдает 503 (после таймаута, указанного в proxy_read_timeout)
    Чем и как создавалась "предельная загрузка"?
     
  3. absurdo

    absurdo

    Регистр.:
    22 мар 2007
    Сообщения:
    314
    Симпатии:
    8
    Точно, отсутствовала страница, которая должна показываться при 503.

    Нагружал сайт при помощиloadimpact.comВопрос по прежнему в том как заставить Apache+Nginx эффективнее использовать все доступные ресурсы?
     
  4. ask0n

    ask0n

    Регистр.:
    9 июн 2009
    Сообщения:
    227
    Симпатии:
    63
    Какой размер форков апача?
    Конфиги обоих серверов без строк комментариев тоже желательно посмотреть.
    Если охота загрузить свободную оперативку, можно увеличить количество MaxSpareServers из расчета чтоб оставалось свободной оперативки меньше, чем на запуск еще одного форка, но это чревато тем, что в случае превышения количества используемой памяти, сервер начнет жить в свопе и эффективность только ухудшиться.
    Опять же, 200мб для сервера у которого всего 256мб - это много неиспользуемой памяти, а для сервера у которого 16384мб 200мб уже практически deadline :)
     
  5. absurdo

    absurdo

    Регистр.:
    22 мар 2007
    Сообщения:
    314
    Симпатии:
    8
    На сервере 1,7 Гб оперативы.

    Конфиг апача:ServerTokens OS
    ServerRoot "/etc/httpd"
    PidFile run/httpd.pid
    Timeout 120
    KeepAlive Off
    MaxKeepAliveRequests 100
    KeepAliveTimeout 15
    <IfModule worker.c>
    StartServers 2
    MaxClients 150
    MinSpareThreads 25
    MaxSpareThreads 75
    ThreadsPerChild 25
    MaxRequestsPerChild 0
    </IfModule>

    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule auth_digest_module modules/mod_auth_digest.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authn_alias_module modules/mod_authn_alias.so
    LoadModule authn_anon_module modules/mod_authn_anon.so
    LoadModule authn_dbm_module modules/mod_authn_dbm.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule authz_owner_module modules/mod_authz_owner.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_dbm_module modules/mod_authz_dbm.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule ldap_module modules/mod_ldap.so
    LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
    LoadModule include_module modules/mod_include.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule logio_module modules/mod_logio.so
    LoadModule env_module modules/mod_env.so
    LoadModule ext_filter_module modules/mod_ext_filter.so
    LoadModule mime_magic_module modules/mod_mime_magic.so
    LoadModule expires_module modules/mod_expires.so
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule usertrack_module modules/mod_usertrack.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule dav_module modules/mod_dav.so
    LoadModule status_module modules/mod_status.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule info_module modules/mod_info.so
    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule actions_module modules/mod_actions.so
    LoadModule speling_module modules/mod_speling.so
    LoadModule userdir_module modules/mod_userdir.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule suexec_module modules/mod_suexec.so
    LoadModule cgi_module modules/mod_cgi.so

    Include conf.d/*.conf

    User bitrix
    Group bitrix

    ServerAdmin root@localhost

    UseCanonicalName Off

    DocumentRoot "/home/bitrix/www"

    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>

    <IfModule mod_userdir.c>
    UserDir disable
    </IfModule>

    DirectoryIndex index.html index.html.var

    AccessFileName .htaccess

    <Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    </Files>

    TypesConfig /etc/mime.types
    DefaultType text/plain
    <IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
    </IfModule>

    HostnameLookups Off

    ErrorLog logs/error_log

    LogLevel warn
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

    CustomLog logs/access_log combined

    ServerSignature On

    <IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
    </IfModule>

    IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable

    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

    AddLanguage ca .ca
    AddLanguage cs .cz .cs
    AddLanguage da .dk
    AddLanguage de .de
    AddLanguage el .el
    AddLanguage en .en
    AddLanguage eo .eo
    AddLanguage es .es
    AddLanguage et .et
    AddLanguage fr .fr
    AddLanguage he .he
    AddLanguage hr .hr
    AddLanguage it .it
    AddLanguage ja .ja
    AddLanguage ko .ko
    AddLanguage ltz .ltz
    AddLanguage nl .nl
    AddLanguage nn .nn
    AddLanguage no .no
    AddLanguage pl .po
    AddLanguage pt .pt
    AddLanguage pt-BR .pt-br
    AddLanguage ru .ru
    AddLanguage sv .sv
    AddLanguage zh-CN .zh-cn
    AddLanguage zh-TW .zh-tw



    AddDefaultCharset UTF-8

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    AddHandler type-map var
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml

    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0
    BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
    BrowserMatch "MS FrontPage" redirect-carefully
    BrowserMatch "^WebDrive" redirect-carefully
    BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
    BrowserMatch "^gnome-vfs/1.0" redirect-carefully
    BrowserMatch "^XML Spy" redirect-carefully
    BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
    Конфиг nginx:user bitrix;
    worker_processes 8;
    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;
    worker_rlimit_nofile 10240;

    events {
    use epoll;
    worker_connections 10240;

    }

    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] $status '
    '"$request" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    log_format common '$remote_addr - - [$time_local] "$request" $status $bytes_sent "$http_referer" "$http_user_agent" $msec';

    access_log /var/log/nginx/access.log common;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    proxy_buffer_size 64k;
    proxy_buffers 8 64k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 10m;
    gzip on;
    gzip_proxied any;
    gzip_types application/x-javascript text/css;

    server {
    listen 80;
    server_name bitrix;
    server_name_in_redirect off;
    access_log /var/log/nginx/access.log common;
    index index.php;
    error_page 500 502 503 504 /500.html;
    error_page 404 = /404.php;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host:80;
    client_max_body_size 1024M;
    client_body_buffer_size 4M;
    root /home/bitrix/www;

    if (-f /home/bitrix/www/.htsecure) {
    rewrite ^(.*)$ https://$host$1 permanent;
    }

    location / { expires 3d;
    if ($request_method = OPTIONS ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PROPFIND ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PROPPATCH ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = MKCOL ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = COPY ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = MOVE ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = LOCK ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = UNLOCK ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PUT ) {
    proxy_pass http://127.0.0.1:8888;
    }
    }

    location ~ ^(/extranet/docs|/docs|/workgroups|/company/profile|/bitrix/tools|/company/personal/user).*/$ {
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ ^(/extranet/docs|/docs|/workgroups|/company/profile|/bitrix/tools|/company/personal/user) {
    if (-d $request_filename) {
    rewrite ^(.*)(/*)$ $1/ last;
    }
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ ^(/bitrix/html_pages)
    {
    root /home/bitrix/www;
    index index@.html;
    if (!-f $request_filename)
    {
    rewrite ^/bitrix/html_pages(.*)@(.*)\.html$ $1.php?$2 break;
    rewrite ^/bitrix/html_pages(.*)\.html$ $1\.php break;
    proxy_pass http://127.0.0.1:8888;
    }
    }

    location ~ \.php$ {
    root /home/bitrix/www;
    if ($request_method = POST ) {
    break;
    proxy_pass http://127.0.0.1:8888;
    }
    if ($http_cookie !~ "PHPSESSID=" ) {
    rewrite ^(.*)\.php$ /bitrix/html_pages$1@$args.html? last;
    }
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ /$ {
    root /home/bitrix/www;
    if ($request_method = POST ) {
    break;
    proxy_pass http://127.0.0.1:8888;
    }
    if ($http_cookie !~ "PHPSESSID=" ) {
    rewrite ^(.*)/$ /bitrix/html_pages$1/index@$args.html? last;
    }
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ (/|\.php|\.asmx)$ {
    proxy_pass http://127.0.0.1:8888;
    }
    location ~ /\.ht {
    deny all;
    }
    location ~ /favicon.ico {
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ ^(/bitrixsetup\.php)$ {
    proxy_pass http://127.0.0.1:8888;
    proxy_buffering off;
    }

    }

    server {
    listen 443;
    keepalive_timeout 70;
    #->
    keepalive_requests 150;
    #<-
    server_name bitrix;

    ssl on;
    # ssl_protocols SSLv3 TLSv1;
    # ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.pem;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    server_name_in_redirect off;
    access_log /var/log/nginx/access.log main;
    index index.php;
    error_page 500 502 503 504 /500.html;
    error_page 404 = /404.php;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host:443;
    client_max_body_size 1024M;
    client_body_buffer_size 4M;
    proxy_set_header HTTPS YES;
    root /home/bitrix/www;

    location / { expires 3d;
    if ($request_method = OPTIONS ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PROPFIND ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PROPPATCH ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = MKCOL ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = COPY ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = MOVE ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = LOCK ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = UNLOCK ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PUT ) {
    proxy_pass http://127.0.0.1:8888;
    }
    }

    location ~ ^(/extranet/docs|/docs|/workgroups|/company/profile|/bitrix/tools|/company/personal/user).*/$ {
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ ^(/extranet/docs|/docs|/workgroups|/company/profile|/bitrix/tools|/company/personal/user) {
    if (-d $request_filename) {
    rewrite ^(.*)(/*)$ $1/ last;
    }
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ ^(/bitrix/html_pages)
    {
    root /home/bitrix/www;
    index index@.html;
    if (!-f $request_filename)
    {
    rewrite ^/bitrix/html_pages(.*)@(.*)\.html$ $1.php?$2 break;
    rewrite ^/bitrix/html_pages(.*)\.html$ $1\.php break;
    proxy_pass http://127.0.0.1:8888;
    }
    }

    location ~ \.php$ {
    root /home/bitrix/www;
    if ($request_method = POST ) {
    break;
    proxy_pass http://127.0.0.1:8888;
    }
    if ($http_cookie !~ "PHPSESSID=" ) {
    rewrite ^(.*)\.php$ /bitrix/html_pages$1@$args.html? last;
    }
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ /$ {
    root /home/bitrix/www;
    if ($request_method = POST ) {
    break;
    proxy_pass http://127.0.0.1:8888;
    }
    if ($http_cookie !~ "PHPSESSID=" ) {
    rewrite ^(.*)/$ /bitrix/html_pages$1/index@$args.html? last;
    }
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ (/|\.php|\.asmx)$ {
    proxy_pass http://127.0.0.1:8888;
    }
    location ~ /\.ht {
    deny all;
    }
    location ~ /favicon.ico {
    proxy_pass http://127.0.0.1:8888;
    }

    location ~ ^(/bitrixsetup\.php)$ {
    proxy_pass http://127.0.0.1:8888;
    proxy_buffering off;
    }

    }
    }
     
  6. ask0n

    ask0n

    Регистр.:
    9 июн 2009
    Сообщения:
    227
    Симпатии:
    63
    1. Отключаем загрузку неиспользуемых модулей apache, можно отталкиваться от такого списка и по мере необходимости включать дополнительные:
    LoadModule authn_file_module
    LoadModule authz_host_module
    LoadModule authz_user_module
    LoadModule auth_basic_module
    LoadModule auth_digest_module
    LoadModule include_module
    LoadModule filter_module
    LoadModule log_config_module
    LoadModule mime_module
    LoadModule status_module
    LoadModule info_module
    LoadModule vhost_alias_module
    LoadModule dir_module
    LoadModule alias_module
    LoadModule rewrite_module
    LoadModule rpaf_module
    LoadModule cgi_module
    LoadModule geoip_module
    LoadModule php5_module
    LoadModule authz_groupfile_module

    Еще нужен вывод команд:
    Код:
    httpd -V
    httpd -M
    2.Для nginx добавляем:
    worker_priority -5;
    reset_timedout_connection on;
    postpone_output 1460;

    keepalive_timeout 20;
    client_header_timeout 30;
    client_body_timeout 60;
    send_timeout 30;

    worker_rlimit_nofile рассчитываем как worker_processes*worker_connections

    worker_connections в конфиге, ИМХО завышен сильно.

    Все proxy_..._timeout я б уменьшил с 300 до 90 где-то, если отдельные директории требуют действительно такой долго обработки можно переопределять эти значения у нужного location.

    Не помешало бы ограничение на количество подключений с одного IP и количество запросов в единицу времени, смотреть в строну limit_zone, limit_req_zone, limit_conn, limit_req

    Проксировать такое:
    Код:
    Location ~ /favicon.ico {
    proxy_pass http://127.0.0.1:8888;
    }
    на бекэнд - моветон, статика должна отдаваться nginx'ом. В location'ах такого плана "~" не нужна тут не проверок на содержимое части в запроси, тут просто location для полного запроса.
    Код:
    if ($request_method = OPTIONS ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PROPFIND ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PROPPATCH ) { 
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = MKCOL ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = COPY ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = MOVE ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = LOCK ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = UNLOCK ) {
    proxy_pass http://127.0.0.1:8888;
    }
    if ($request_method = PUT ) {
    proxy_pass http://127.0.0.1:8888;
    }
    Зачем куча отдельных if'ов?
    Код:
     if ($request_method ~ ^(OPTIONS|PROPFIND|и т.п.)$ ) {
      proxy_pass http://127.0.0.1:8888;
     }
    Опять же насколько реально нужны все эти методы?
    Мб хватит такого:
    Код:
    if ($request_method !~ ^(GET|HEAD|PUT)$ ) {
                return 444;
    }
    proxy_pass http://127.0.0.1:8888;
    Если юзаем проверки вида:
    f (-d $request_filename)

    Не помешают такие опции:
    open_file_cache max=5000 inactive=300s;
    open_file_cache_valid 360s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

    Вообще по всем best practice использование большого количества if для nginx'а очень плохая практика он и работать может начать не так, как от него ожидают прописывая линейные каскады if'ов, и производительность из-за кучи ненужных проверок падает. Нужно стараться описать все свои проверки через соответствующие location.
     
    absurdo нравится это.
  7. absurdo

    absurdo

    Регистр.:
    22 мар 2007
    Сообщения:
    314
    Симпатии:
    8
    Этот конфиг настраивали Битриксовцы. Например через favicon.ico там как-то считается кол-во добавивших в избранное, на сколько я понял. В общем нюансы есть. Спасибо за подробный анализ.
     
  8. nagual

    nagual Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    65
    Симпатии:
    3
    nginx.conf от битрикса это бред ...
    worker_processes 8; у Вас что 8 процессоров или 8 дисков ?
    Все эти ифы ... они реально ненужны. Тот кто напосал это конфиг явно не в теме.
    http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files
     
  9. absurdo

    absurdo

    Регистр.:
    22 мар 2007
    Сообщения:
    314
    Симпатии:
    8
    httpd -V

    Server version: Apache/2.2.3
    Server built: Aug 30 2010 12:32:08
    Server's Module Magic Number: 20051115:3
    Server loaded: APR 1.2.7, APR-Util 1.2.7
    Compiled using: APR 1.2.7, APR-Util 1.2.7
    Architecture: 32-bit
    Server MPM: Prefork
    threaded: no
    forked: yes (variable process count)
    Server compiled with....
    -D APACHE_MPM_DIR="server/mpm/prefork"
    -D APR_HAS_SENDFILE
    -D APR_HAS_MMAP
    -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
    -D APR_USE_SYSVSEM_SERIALIZE
    -D APR_USE_PTHREAD_SERIALIZE
    -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
    -D APR_HAS_OTHER_CHILD
    -D AP_HAVE_RELIABLE_PIPED_LOGS
    -D DYNAMIC_MODULE_LIMIT=128
    -D HTTPD_ROOT="/etc/httpd"
    -D SUEXEC_BIN="/usr/sbin/suexec"
    -D DEFAULT_PIDLOG="run/httpd.pid"
    -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
    -D DEFAULT_LOCKFILE="logs/accept.lock"
    -D DEFAULT_ERRORLOG="logs/error_log"
    -D AP_TYPES_CONFIG_FILE="conf/mime.types"
    -D SERVER_CONFIG_FILE="conf/httpd.conf"

    httpd -M

    Loaded Modules:
    core_module (static)
    mpm_prefork_module (static)
    http_module (static)
    so_module (static)
    auth_basic_module (shared)
    auth_digest_module (shared)
    authn_file_module (shared)
    authn_alias_module (shared)
    authn_anon_module (shared)
    authn_dbm_module (shared)
    authn_default_module (shared)
    authz_host_module (shared)
    authz_user_module (shared)
    authz_owner_module (shared)
    authz_groupfile_module (shared)
    authz_dbm_module (shared)
    authz_default_module (shared)
    ldap_module (shared)
    authnz_ldap_module (shared)
    include_module (shared)
    log_config_module (shared)
    logio_module (shared)
    env_module (shared)
    ext_filter_module (shared)
    mime_magic_module (shared)
    expires_module (shared)
    deflate_module (shared)
    headers_module (shared)
    usertrack_module (shared)
    setenvif_module (shared)
    mime_module (shared)
    dav_module (shared)
    status_module (shared)
    autoindex_module (shared)
    info_module (shared)
    dav_fs_module (shared)
    vhost_alias_module (shared)
    dir_module (shared)
    actions_module (shared)
    speling_module (shared)
    userdir_module (shared)
    alias_module (shared)
    rewrite_module (shared)
    proxy_module (shared)
    proxy_balancer_module (shared)
    proxy_ftp_module (shared)
    proxy_http_module (shared)
    proxy_connect_module (shared)
    suexec_module (shared)
    cgi_module (shared)
    geoip_module (shared)
    rpaf_module (shared)
    proxy_ajp_module (shared)
    php5_module (shared)
    Syntax OK
    как апачь лучше затюнить?
     
  10. DoomStar

    DoomStar Писатель

    Регистр.:
    8 апр 2010
    Сообщения:
    9
    Симпатии:
    0
    конфиг действительно лучше переписать, т.к. 404 вероятнее всего изза конфига выпадает.
    см. в сторону try_files - более эффективно для proxy_pass