1. Включить Keep-Alive
HTTP Keep Alive относится к сообщению, которое отправляется между клиентским компьютером и веб-сервером и запрашивает разрешение на загрузку файла. Включение Keep Alive позволяет клиентскому компьютеру загружать несколько файлов без повторного запроса разрешения, что помогает сэкономить пропускную способность.
Чтобы включить Keep Alive, просто скопируйте и вставьте приведенный ниже код в ваш файл .htaccess.
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
2. Отключить хотлинкинг изображений
Когда «горячая ссылка» другого сайта на ваши изображения снижает пропускную способность, замедляя работу вашего сайта. Чтобы другие сайты не могли контролировать вашу пропускную способность, вы можете добавить этот фрагмент кода в свой файл .htaccess. Не забудьте изменить бит, который говорит your_Domain_name.com!
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?your_Domain_name.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
3. Сожмите ваш сайт с помощью gzip
Gzip - это простой метод сжатия файлов вашего сайта для экономии пропускной способности и ускорения загрузки страницы. Gzip работает, сжимая ваши файлы в zip-файл, который быстрее загружается браузером пользователя. Затем браузер пользователя разархивирует файл и покажет содержимое. Этот метод передачи контента с сервера в браузер гораздо более эффективен и экономит много времени.
Вы можете включить Gzip, просто добавив следующий код в ваш файл .htaccess:
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# Or, compress certain file types by extension:
SetOutputFilter DEFLATE
Чтобы проверить, включен ли Gzip или работает на вашем сайте, вы можете использовать Gziptest.com.
4. Включить заголовки Expires
Заголовки Expires сообщают браузеру, должны ли они запрашивать определенный файл с сервера или они должны получить его из кэша браузера.
Вся идея Expires Headers заключается не только в том, чтобы уменьшить загрузку с сервера (постоянная загрузка одного и того же файла, когда он не модифицирован, тратит драгоценное время загрузки), а скорее уменьшить количество HTTP-запросов к серверу.
Так в файл .htaccess входят следующие вещи
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
5. Замените PHP статическим HTML, где это возможно
PHP отлично подходит для повышения эффективности вашего сайта и уменьшения необходимости многократного ввода одной и той же информации. Однако при вызове информации через PHP используются ресурсы сервера, и его следует заменить статическим HTML, где он не сохраняется в любое время
6. Укажите набор символов в заголовках HTTP
По той же причине, что и выше, полезно указывать набор символов в заголовках HTTP-ответа, чтобы браузеру не приходилось тратить дополнительное время на выяснение того, какой набор символов вы используете.
Вы можете сделать это, просто добавив тег набора символов UTF-8 в раздел вашего сайта.
7. Включить сжатие на выходе
Сжатие может быть выполнено двумя способами.
Apache фактически имеет два варианта сжатия:
- mod_deflate проще в настройке и является стандартным.
- mod_gzip кажется более мощным: вы можете предварительно сжать содержимое.
Два варианта сжатия файлов: Deflate и GZIP.
- Deflate - это опция, которая автоматически поставляется с сервером Apache и простая в настройке.
- GZIP, с другой стороны, должен быть установлен и требует немного больше работы для установки. Тем не менее, GZIP достигает более высокой степени сжатия и, следовательно, может быть лучшим выбором, если ваш веб-сайт использует страницы с большим количеством изображений или файлов большого размера.
Deflate работает быстро и работает, поэтому я его использую; используйте mod_gzip, если это плавает на вашей лодке. В любом случае Apache проверяет, отправил ли браузер заголовок «Accept-encoding» и возвращает сжатую или обычную версию файла. Тем не менее, некоторые старые браузеры могут иметь проблемы (подробнее ниже), и есть специальные директивы, которые вы можете добавить, чтобы исправить это.
zlib.output_compression Независимо от того, чтобы прозрачно сжимать страницы. Если
эта опция установлена на "Вкл"в php.ini или конфигурации Apache,
страницы сжимаются, если браузер отправляет «Accept-Encoding: gzip»
или "спустить" заголовок.
PHP По умолчанию: отключено
В Php.ini
zlib.output_compression = On
Если вы не можете изменить файл .htaccess, вы можете использовать PHP для возврата сжатого содержимого. Дайте вашему HTML-файлу расширение .php и добавьте этот код вверху:
В PHP:
<?php
if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’))
ob_start(“ob_gzhandler”); else ob_start();
?>
В этом разделе будет включен модуль apache mod_deflate, который сжимает текст, CSS и JavaScript перед его отправкой в браузер. Это приводит к меньшему размеру загрузки. Включите его в файле .htaccess, чтобы он выглядел следующим образом:
<IfModule mod_deflate.c>
############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip
# Insert filter on all content
SetOutputFilter DEFLATE
# Insert filter on selected content types only
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/x-javascript text/xml application/xml application/xhtml+xml image/x-icon image/svg+xml application/rss+xml application/x-font application/x-font-truetype application/x-font-ttf application/x-font-otf application/x-font-opentype application/vnd.ms-fontobject font/ttf font/otf font/opentype
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
**
8. Включить кэш, OPcache и eAccelerator (еще один инструмент кэширования PHP)
Memcache особенно полезен для уменьшения нагрузки на вашу базу данных, в то время как механизмы кэширования байт-кода, такие как APC или OPcache, отлично подходят для экономии времени выполнения при компиляции скриптов.
9. Воспользуйтесь преимуществами собственных функций PHP
По возможности, старайтесь использовать преимущества нативных функций PHP вместо того, чтобы писать свои собственные функции для достижения того же результата. Потратив немного времени на изучение использования собственных функций PHP, вы не только сможете быстрее написать код, но и сделаете его более эффективным.
10. Вырежьте ненужные расчеты
При многократном использовании одного и того же значения переменной вычисляйте и назначайте значение в начале, а не выполняйте вычисления для каждого использования.
Если вы просматриваете массив, например, count () его заранее, сохраните значение в переменной и используйте его для своего теста. Таким образом, вы избегаете ненужного запуска тестовой функции при каждой итерации цикла.
11. Используйте самые сильные функции Str
Хотя str_replace быстрее, чем preg_replace, функция strtr в четыре раза быстрее, чем str_replace.
12. Палка с одинарными кавычками
По возможности используйте одинарные кавычки, а не двойные. Двойные кавычки проверяют переменные, которые могут снизить производительность.
13. Попробуйте три знака равенства
Поскольку «= = =» проверяет только закрытый диапазон, это быстрее, чем «= =» для сравнения.
14. Используйте isset ()
по сравнению с
count (), strlen () и sizeof (),
isset () - более быстрый и простой способ определить, больше ли значение 0.
15. Вырежьте ненужные классы
Если вы не собираетесь использовать классы или методы несколько раз, тогда они вам действительно не нужны. Если вам необходимо использовать классы, обязательно используйте методы производных классов, так как они работают быстрее, чем методы в базовых классах.
16. Закрыть соединения с базой данных
Удаление переменных и закрытие соединений с базой данных в вашем коде сэкономит драгоценную память.
17. Ограничить количество обращений к вашей базе данных
Совокупность запросов может сократить количество обращений к вашей базе данных, что ускорит работу.