Apache загружает один vhost быстрее другого - PullRequest
0 голосов
/ 05 февраля 2020

У меня 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>
...