web-server-setup

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

Настраиваем Lighttpd на работу с php5-fpm

/etc/lighttpd/conf-available/15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
 
index-file.names += ( "index.php" )
 
## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
            "socket" => "/var/run/php5-fpm.sock",
            "broken-scriptfilename" => "enable"
        ))
)

Затем включаем необходимые модули

root@web-server:~# lighttpd-enable-mod fastcgi fastcgi-php

На этом минимально необходимые настройки закончены.

Проведем небольшую оптимизацию. Ниже представлены части файла lighttpd.conf

server.max-keep-alive-requests = 4
server.max-keep-alive-idle = 4
server.max-read-idle = 30
server.max-write-idle = 180

Компрессия:

compress.allowed-encodings  = ("gzip", "deflate")
compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/javascript", "text/css", "text/html", "text/plain" )

Кеширование на стороне клиента:

$HTTP["url"] =~ "\.(jpg|gif|png|css|js)$" {
     expire.url = ( "" => "access plus 3 days" )
}
/etc/php5/fpm/php.ini
cgi.fix_pathinfo=1
/etc/php5/fpm/pool.d/www.conf
pm = static
pm.max_children = 16

Добавления в секцию [mysqld]. Настройки расчитаны на относительно небольшое потребление памяти

default_time_zone='+03:00'
# Опция explicit_defaults_for_timestamp доступна только в mysql>=5.6
explicit_defaults_for_timestamp = 1
key_buffer_size         = 16M
max_allowed_packet      = 16M
tmp_table_size          = 8M
thread_stack            = 192K
thread_cache_size       = 8
join_buffer_size        = 128K
read_rnd_buffer_size    = 256K
read_buffer_size        = 128K
max_connections         = 100

Настройки для InnoDB, для машины с 2-4Гб памяти.

default_storage_engine  = innodb
innodb_buffer_pool_size=1G
innodb_log_file_size=384M
innodb_log_buffer_size=12M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table
innodb_flush_method=O_DIRECT

Оптимизированные настройки sysctl

/etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_recycle = 1
net.core.rmem_max = 16777216
net.core.rmem_default = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
  • web-server-setup.txt
  • Последнее изменение: 2020/03/10 13:39
  • (внешнее изменение)