У меня 2 vhosts, я использую Apache 2.4.6 на CentOS 7, с событием MPM. Я также использую PHP -FPM с UNIX доменными сокетами, каждая конфигурация PHP имеет свой собственный файл сокетов. Конфигурационные файлы vhost практически идентичны.
Один веб-сайт загружается медленнее, чем другой, например:
простая страница "контакта" загружается 1,19 секунд на медленном хосте и 0,56 секунд на быстром vhost. Что может быть причиной root этой разницы?
Мой сервер имеет 1 ядро ЦП, и все же я вижу 6 процессов httpd, один из которых является родительским и 5 рабочих. Это нормально или должен быть только 1 рабочий процесс?
РЕДАКТИРОВАТЬ: Я тестировал с простой html страницы (стр. html) с несколькими строчками HTML, PHP нет, поэтому PHP переводчик вообще не трогал. И проблема сохраняется. Так что PHP не проблема.
РЕДАКТИРОВАТЬ: Я не использую файлы .htaccess.
Вот мои конфигурации vhost. Сначала медленный vhost:
<IfModule mod_ssl.c>
<VirtualHost PUBLIC-IP:443>
ServerName www.domain1.tld
ServerAlias domain1.tld
DocumentRoot /var/www/hosts/domain1/html
ErrorLog /var/www/hosts/domain1/logs/error_log
CustomLog /var/www/hosts/domain1/logs/access_log combined env=!forwarded
CustomLog /var/www/hosts/domain1/logs/access_log proxy env=forwarded
DirectoryIndex index.php index.html
Options -Indexes +FollowSymlinks
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain1.tld/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain1.tld/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain1.tld/chain.pem
<FilesMatch \.php$>
<If "-f %{SCRIPT_FILENAME}">
SetHandler "proxy:unix:/var/run/php-fpm/domain1.tld.sock|fcgi://domain1.tld"
</If>
</FilesMatch>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1
RewriteRule ^/page$ /page.php [L]
...
...
a few rewrite rules
...
<FilesMatch ".(js|css|ico|jpg|jpeg|png|gif|eot|woff|otf|ttf|svg)$">
Header set Cache-Control "max-age=86400, public"
</FilesMatch>
<FilesMatch "(\.js|\.css)$">
RequestHeader edit "If-None-Match" "^(.*)-gzip\"$" "$1\""
</FilesMatch>
<Directory "/var/www/hosts/domain1/html">
AllowOverride None
</Directory>
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</VirtualHost>
</IfModule>
Теперь быстрый vhost:
<IfModule mod_ssl.c>
<VirtualHost PUBLIC-IP:443>
ServerName www.domain2.tld
ServerAlias domain2.tld
DocumentRoot /var/www/hosts/domain2/html
ErrorLog /var/www/hosts/domain2/logs/error_log
CustomLog /var/www/hosts/domain2/logs/access_log combined env=!forwarded
CustomLog /var/www/hosts/domain2/logs/access_log proxy env=forwarded
DirectoryIndex index.php index.html
Options -Indexes +FollowSymlinks
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain2.tld/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain2.tld/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain2.tld/chain.pem
<FilesMatch \.php$>
<If "-f %{SCRIPT_FILENAME}">
SetHandler "proxy:unix:/var/run/php-fpm/domain2.tld.sock|fcgi://domain2.tld"
</If>
</FilesMatch>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1
RewriteRule ^/page$ /page.php [L]
...
...
a few rewrite rules
...
<FilesMatch ".(js|css|ico|jpg|jpeg|png|gif|eot|woff|otf|ttf|svg)$">
Header set Cache-Control "max-age=86400, public"
</FilesMatch>
<FilesMatch "(\.js|\.css)$">
RequestHeader edit "If-None-Match" "^(.*)-gzip\"$" "$1\""
</FilesMatch>
<Directory "/var/www/hosts/domain2/html">
AllowOverride None
</Directory>
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</VirtualHost>
</IfModule>