Trotor 27 07/12/12 03:49 Для vds большое значения имеют настройки сервера. Некоторое время "игрался" с ними, вот такой вид имеют они сейчас.apache2.conf ServerRoot "/etc/apache2" LockFile /var/lock/apache2/accept.lock PidFile ${APACHE_PID_FILE} Timeout 1 KeepAlive Off MaxKeepAliveRequests 300 KeepAliveTimeout 3 <IfModule mpm_prefork_module> StartServers 20 MinSpareServers 5 MaxSpareServers 10 MaxClients 20 MaxRequestsPerChild 3000 </IfModule> <IfModule mpm_worker_module> StartServers 1 MaxClients 50 MinSpareThreads 1 MaxSpareThreads 4 ThreadsPerChild 25 MaxRequestsPerChild 10000 </IfModule> User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> DefaultType text/plain HostnameLookups Off ErrorLog /var/log/apache2/error.log LogLevel error Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf Include /etc/apache2/httpd.conf Include /etc/apache2/ports.conf 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 ServerTokens Prod ServerSignature Off Include /etc/apache2/conf.d/ Include /etc/apache2/sites-enabled/ my.conf (мускул) [client] port = 3306 socket = /var/run/mysqld/mysqld.sock default-character-set= utf8 [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /mysql_tmp language = /usr/share/mysql/english wait_timeout = 90 key_buffer = 256M max_allowed_packet = 16M thread_stack = 256K thread_cache_size = 8 max_connections = 400 table_cache = 512 thread_concurrency = 8 query_cache_limit = 20M query_cache_size = 64M log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 server-id = 1 innodb_buffer_pool_size = 64M innodb_additional_mem_pool_size = 2M innodb_data_file_path = system:16M innodb_data_home_dir = /var/lib/mysql #innodb_log_arch_dir = innodb_flush_log_at_trx_commit = 0 innodb_log_file_size = 8M innodb_lock_wait_timeout = 10 innodb_file_per_table = 1 #innodb_log_group_home_dir = innodb_thread_concurrency = 8 [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] #no-auto-rehash # faster start of mysql but no tab completition #default-character-set= koi8r default-character-set= utf8 [isamchk] key_buffer = 128M !includedir /etc/mysql/conf.d/ Памяти на сервере полтора гига, проца чуть больше двух герц. Посещаемость около 3 тысячи хостов в сутки. Нет ли критических ошибок в этих настройках для ipb? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/12/12 07:19 Нет ли критических ошибок в этих настройках для ipb? Отсутствие nginx на фронтэнде. Поделиться сообщением Ссылка на сообщение
Trotor 27 07/12/12 07:36 (изменено) Отсутствие nginx на фронтэнде.Отсутствие nginx на фронтэнде.В смысле в настройках апача? Вот сам нгинкс: # # $Id: nginx.conf,v 1.1 2009-06-04 10:13:16 root Exp $ # user www-data; worker_processes 4; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 10240; } http { client_max_body_size 2m; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 0; tcp_nodelay on; gzip off; include /etc/nginx/sites-enabled/*; } Изменено 12 июля 2012 пользователем Haktar Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/12/12 10:43 Т.е. nginx таки есть? Статику на него перенаправили? Ну и ок, конфиги у вас самые обычные, переживать не о чем. Или какие-то проблемы есть с сервером? MaxClients 50Какой memory_limit стоит для PHP? Если дефолтные для последних версий 128Мб, то (128+20)*50 = 7400Мб >> 1500Мб. Для штатной работы не критично, но если начнут ддосить - apache сожрет всю память и положит сервер. В целях повышения устойчивости сервера имеет смысл понизить MaxClients до 10, а то и 8. На скорости работы это никак не отразится, у вас в штатном режиме и так наверняка не больше 10 инстансов висит. 1 Поделиться сообщением Ссылка на сообщение
Trotor 27 07/12/12 18:13 Статику на него перенаправили?Непонял. Ну и ок, конфиги у вас самые обычные, переживать не о чем.Кое где я всё таки сделал изменения. Или какие-то проблемы есть с сервером?С апачем. Но в связке с мускулом. Какой memory_limit стоит для PHP?256M Если дефолтные для последних версий 128Мб, то (128+20)*50 = 7400Мб >> 1500Мб.Тоесть увеличить до 1500М? Для штатной работы не критично, но если начнут ддосить - apache сожрет всю память и положит сервер. В целях повышения устойчивости сервера имеет смысл понизить MaxClients до 10, а то и 8. На скорости работы это никак не отразится, у вас в штатном режиме и так наверняка не больше 10 инстансов висит.Тоесть уменьшение не уменьшит быстродействие? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/12/12 18:30 Аррр. Как вы сделали такие странные выводы? :) Непонял.nginx в связке с apache обычно используется для отдачи статических файлов. Например, правило вида: location ~* \.(jpg|png|gif)$ { root /var/www/path.to.forum/; } приведет к тому, что все картинки будут отдаваться самим nginx, без задействования apache, что заметно разгружает сервер. 256M Многовато, для IPB гарантированно достаточно 128Мб. Тоесть увеличить до 1500М?Ни в коем случае. Наоборот, следует уменьшить в конфиге apache значение MaxClients до 8. Возможно, потребуется аналогично уменьшить значение ThreadsPerChild. Тоесть уменьшение не уменьшит быстродействие? Это не ускорит и не замедлит сервер, но в случае большой нагрузки сервер не умрет напрочь и не потеряет управление, а начнет отказывать клиентам в соединении. С апачем. Но в связке с мускулом.Индексы в базе все в порядке? Увы, ваша версия еще страдает серьезными проблемами в скорости. К 3.3 многие тяжелые места в IPB оптимизировали, но вы, я так понимаю, не планируете более обновляться. Поделиться сообщением Ссылка на сообщение
Trotor 27 07/12/12 23:49 (изменено) Аррр. Как вы сделали такие странные выводы?Методом проб и ошибок. Я не хотел, но пришлось заняться сервером, а знаний никаких. Поэтому приходиться вот такими методами :) Ни в коем случае. Наоборот, следует уменьшить в конфиге apache значение MaxClients до 8. Возможно, потребуется аналогично уменьшить значение ThreadsPerChild.Многовато, для IPB гарантированно достаточно 128Мб.Изменил. Тестирую. Это не ускорит и не замедлит сервер, но в случае большой нагрузки сервер не умрет напрочь и не потеряет управление, а начнет отказывать клиентам в соединении.Нагрузил форум - вы правы, так и есть. Но всё равно ещё присматриваюсь к поведению сервера. Индексы в базе все в порядке?В том то и дело что нет. Но пока маловато опыта чтоб исправить индексы таблиц. К 3.3 многие тяжелые места в IPB оптимизировали, но вы, я так понимаю, не планируете более обновляться.Это сколько прийдёться переделывать. Вот что меня останавливает. nginx в связке с apache обычно используется для отдачи статических файлов. Например, правило вида:Я так понял это прописать в nginx? Прописал вот такое:location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|avi|swf)$ { root /var/www/; }Незнаю, сработало ли :) Изменено 12 июля 2012 пользователем Haktar Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/13/12 07:30 Незнаю, сработало ли Проверить легко: http://imtw.ru/grafik/logo.gif - картинкаhttp://imtw.ru/grafik/blablabla.gif - 404 от nginx Значит, работает. Apache должно заметно полегчать. Еще у вас в коде страницы висит: [HTTP_X_FORWARDED_FOR] => *** [HTTP_CONNECTION] => close [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5 [HTTP_ACCEPT_ENCODING] => gzip, deflate [HTTP_DNT] => 1 ... Видимо, отлаживали чего-то, и забыли. Спрячьте. Поделиться сообщением Ссылка на сообщение
Trotor 27 07/13/12 14:20 Apache должно заметно полегчать.Заметно, да. И сбоев нет. Видимо, отлаживали чего-то, и забыли. Спрячьте.Это рекламный код от рекламодателя. На него и оплачивается хостинг. А чё он опасен? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/13/12 19:48 [HTTP_X_FORWARDED_FOR] => *** [HTTP_CONNECTION] => close [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8- это не рекламный код. Это банальный print_r($_SERVER); обычно нужный для отладки. Одна из классических уязвимостей вида "раскрытие данных", дающее хакеру возможность подсмотреть за внутренностями вашего сервера. Вряд ли ваш рекламодатель промышленно устанавливает всем такое. Скорее всего, у вас установлен какой-то ручной говнокод, который желательно поправить чем скорее, тем лучше. Поделиться сообщением Ссылка на сообщение
Trotor 27 07/14/12 00:49 - это не рекламный код. Это банальный print_r($_SERVER); обычно нужный для отладки. Одна из классических уязвимостей вида "раскрытие данных", дающее хакеру возможность подсмотреть за внутренностями вашего сервера. Вряд ли ваш рекламодатель промышленно устанавливает всем такое. Скорее всего, у вас установлен какой-то ручной говнокод, который желательно поправить чем скорее, тем лучше.Интересно однако. Вот сам код:<?php $timeout = ini_get('default_socket_timeout'); ini_set('default_socket_timeout', 3); echo @file_get_contents("http://links.radiushosting.ru/get_links.php?url=".urlencode($_SERVER['REQUEST_URI'])."&host=imtw.ru&charset=utf-8"); ini_set('default_socket_timeout', $timeout); echo "<!--"; print_r($_SERVER); echo "-->"; ?> Удалил <!--"; print_r($_SERVER); echo "-->, реклама осталась, но отладки в коде нет. Что посоветуете? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/14/12 08:33 Вот сам код:Да, код совсем примитивный. Даже кеширования нет. Чуть быстрее и безопаснее будет сделать так:<?php $classToLoad = IPSLib::loadLibrary(IPS_KERNEL_PATH . '/classFileManagement.php', 'classFileManagement'); $classFileManagement = new $classToLoad(); $classFileManagement->timeout = 3; echo $classFileManagement->getFileContents('http://links.radiushosting.ru/get_links.php?url='.urlencode($_SERVER['REQUEST_URI']).'&host=imtw.ru&charset=utf-8'); ?> А совсем хорошо было бы вынести этот запрос в отдельный файл, и подключать его через iframe или JS. 1 Поделиться сообщением Ссылка на сообщение
Trotor 27 07/15/12 15:46 Чуть быстрее и безопаснее будет сделать так:Спасибо, поставил. Надеюсь рекламодатель не будет возмущаться :) Поделиться сообщением Ссылка на сообщение
NooBAsTiK 9 08/17/12 05:29 Для настройки mySQL рекомендую воспользоваться скриптом tuning-primer.sh. И посмотрел что то многовато мне кажется висит процессов appache у вас "StartServers 20" плюс еще сколько ngnix запустил непонятно. плюс таблицу "sessions" можно перевести в память, если конечно её хватает. Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 08/17/12 08:09 nginx в связке с apache обычно используется для отдачи статических файлов. Например, правило вида: location ~* \.(jpg|png|gif)$ { root /var/www/path.to.forum/; }приведет к тому, что все картинки будут отдаваться самим nginx, без задействования apache, что заметно разгружает сервер.А не подскажете, что эффективнее будет - nginx location или правило в mod rewrite?RewriteCond %{REQUEST_FILENAME} .*\.(jpeg|jpg|gif|png)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . /public/404.php [L] Поделиться сообщением Ссылка на сообщение