Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Настройки апача и мускула

Опубликовано:

Для 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?

Рекомендованные сообщения

Опубликовано:
Нет ли критических ошибок в этих настройках для ipb?

Отсутствие nginx на фронтэнде.

Опубликовано:
  • Автор

Отсутствие 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/*;  }

 

Изменено пользователем Haktar

Опубликовано:

Т.е. nginx таки есть? Статику на него перенаправили? Ну и ок, конфиги у вас самые обычные, переживать не о чем. Или какие-то проблемы есть с сервером?

 

MaxClients        50

Какой memory_limit стоит для PHP?

 

Если дефолтные для последних версий 128Мб, то (128+20)*50 = 7400Мб >> 1500Мб.

 

Для штатной работы не критично, но если начнут ддосить - apache сожрет всю память и положит сервер. В целях повышения устойчивости сервера имеет смысл понизить MaxClients до 10, а то и 8. На скорости работы это никак не отразится, у вас в штатном режиме и так наверняка не больше 10 инстансов висит.

Опубликовано:
  • Автор

Статику на него перенаправили?

Непонял.

 

 

Ну и ок, конфиги у вас самые обычные, переживать не о чем.

Кое где я всё таки сделал изменения.

 

 

Или какие-то проблемы есть с сервером?

С апачем. Но в связке с мускулом.

 

 

Какой memory_limit стоит для PHP?

256M

 

Если дефолтные для последних версий 128Мб, то (128+20)*50 = 7400Мб >> 1500Мб.

Тоесть увеличить до 1500М?

 

Для штатной работы не критично, но если начнут ддосить - apache сожрет всю память и положит сервер. В целях повышения устойчивости сервера имеет смысл понизить MaxClients до 10, а то и 8. На скорости работы это никак не отразится, у вас в штатном режиме и так наверняка не больше 10 инстансов висит.

Тоесть уменьшение не уменьшит быстродействие?

Опубликовано:

Аррр. Как вы сделали такие странные выводы? :)

 

Непонял.

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 оптимизировали, но вы, я так понимаю, не планируете более обновляться.

Опубликовано:
  • Автор

Аррр. Как вы сделали такие странные выводы?

Методом проб и ошибок. Я не хотел, но пришлось заняться сервером, а знаний никаких. Поэтому приходиться вот такими методами :)

 

 

Ни в коем случае. Наоборот, следует уменьшить в конфиге 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/;

}

Незнаю, сработало ли :)

Изменено пользователем Haktar

Опубликовано:
Незнаю, сработало ли

 

Проверить легко:

 

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
...

 

Видимо, отлаживали чего-то, и забыли. Спрячьте.

Опубликовано:
  • Автор

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

- это не рекламный код. Это банальный print_r($_SERVER); обычно нужный для отладки. Одна из классических уязвимостей вида "раскрытие данных", дающее хакеру возможность подсмотреть за внутренностями вашего сервера. Вряд ли ваш рекламодатель промышленно устанавливает всем такое. Скорее всего, у вас установлен какой-то ручной говнокод, который желательно поправить чем скорее, тем лучше.

Опубликовано:
  • Автор

- это не рекламный код. Это банальный 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 "-->, реклама осталась, но отладки в коде нет.

 

Что посоветуете?

Опубликовано:
Вот сам код:

Да, код совсем примитивный. Даже кеширования нет.

 

Чуть быстрее и безопаснее будет сделать так:

<?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 месяц спустя...
Опубликовано:

Для настройки mySQL рекомендую воспользоваться скриптом tuning-primer.sh. И посмотрел что то многовато мне кажется висит процессов appache у вас "StartServers 20" плюс еще сколько ngnix запустил непонятно.

 

плюс таблицу "sessions" можно перевести в память, если конечно её хватает.

Опубликовано:

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]

Опубликовано:

Правила для nginx-а должны быть эффективнее, так как они обрабатываются одним только nginx'ом. Просто нужно настроить /public/404.php для not found картинок и практически по смыслу они будут одинаковы.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.