Apache+mod_php такой медленный

У меня проблема с настройкой моего сервера Apache с помощью mod_php. У меня есть веб-сайт, страница index.php которого создается за ~ 200 мс. Но Apache обслуживает его примерно за 1,5 секунды. Почему происходит это замедление?

Если нужно, мой /etc/apache2/ports.conf файл:

Listen 80

<VirtualHost *:80>
    ServerName mysite.local
    ServerAlias www.mysite.local
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / http://localhost:9999/
    ProxyPassReverse / http://localhost:9999/
</VirtualHost>

Мой файл /etc/apache2/sites-available/mysite.local.conf:

Listen 9999
User max
Group max
<VirtualHost *:9999>
    ServerName 127.0.0.1:9999
    DocumentRoot /home/max/www/mysite.local/www/html/
    
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/max/www/mysite.local/www>
        Options FollowSymLinks
        AllowOverride All
        #Order allow,deny
        #Allow from all
        Require all granted
    </Directory>
        
    ErrorLog /home/max/www/mysite.local/logs/error.log
    LogLevel warn
    CustomLog /home/max/www/mysite.local/logs/access.log combined
</VirtualHost>

Мой главный вопрос: почему это так медленно и как можно ускорить? Я протестировал размещение содержимого index.php в простом html-файле, и он обслуживается примерно через 10 мс. значит проблема скорее всего в mod_php? Заранее спасибо.


person Max Cruer    schedule 07.03.2021    source источник


Ответы (1)


Причиной может быть то, что apache рекурсивно проверяет наличие файлов .htaccess в каждом корневом каталоге для каждого запроса. Apache используется очень широко, но не очень быстро и даже не оптимизировано.

Я бы определенно предложил сервер nginx в сочетании с php-fpm. Конфигурация очень проста, и если вы знакомы с Apache, у вас не должно возникнуть проблем с использованием nginx. Как: https://tecadmin.net/setup-nginx-php-fpm-on-ubuntu-20-04/

person bjoernffm    schedule 07.03.2021
comment
Спасибо за предложение. Но теперь мне нужно использовать Apache. - person Max Cruer; 07.03.2021