Статус: Офлайн
Реєстрація: 27.12.2011
Повідом.: 196
Реєстрація: 27.12.2011
Повідом.: 196
Оптимизируем и ускоряем Joomla, делимся своим опытом
Кто знает про методы оптимизации запросов и ускорения загрузки страниц Joomla пишем сюда.
В качестве старта предлагаю метод оптимизации запросов с помощью легкого сервера Nginx. Метод успешно тестируется для Joomla+Property с трафиком 10-15К просмот/сутки на виртуальном сервере VPS ram-256 мб провайдера украина.
В стандартной конфигурации Аpache принимает все запросы на себя и вместе с MуSQL вешает сервер через 3 минуты после запуска
.
Суть метода в том чтобы поставить Nginx в качестве прокси для апача. Его задача в фильтрации запросов и разделении запросов к статическому и динамическому контенту: динамику направляет на апач (бекэнд) через локахост, а статику отдает напрямую с корня
.
Привожу рабочие исходники конфигов для сервера находящегося у провайдера на котором установлен дистрибутив Fedora12+Apache (Red Hat Enterprise Linux 4 / CentOS 4, Red Hat Enterprise Linux 5 / CentOS 5,ASPLinux Server 5). В других продуктах линукса разница только в необходимости установки репозитариев.
Устанавливаем Nginx:
Исправляем конфиг Nginx /etc/nginx/nginx.conf
Для связки Nginx с Apache необходим модуль mod_rpaf , устанавливаем:
Далее необходимо изменить конфиг Apache etc/httpd/conf/httpd.conf
Добавляем в файл:
Теперь рестартуем Apache и Nginx
Конфиги на сто рабочие, собраны собственноручно экспериментальным путем, тех кто шарит прошу покритиковать с конструктивом. Предлагайте свои способы ускорения Joomla, обсудим!
Кто знает про методы оптимизации запросов и ускорения загрузки страниц Joomla пишем сюда.
В качестве старта предлагаю метод оптимизации запросов с помощью легкого сервера Nginx. Метод успешно тестируется для Joomla+Property с трафиком 10-15К просмот/сутки на виртуальном сервере VPS ram-256 мб провайдера украина.
В стандартной конфигурации Аpache принимает все запросы на себя и вместе с MуSQL вешает сервер через 3 минуты после запуска
. Суть метода в том чтобы поставить Nginx в качестве прокси для апача. Его задача в фильтрации запросов и разделении запросов к статическому и динамическому контенту: динамику направляет на апач (бекэнд) через локахост, а статику отдает напрямую с корня
Привожу рабочие исходники конфигов для сервера находящегося у провайдера на котором установлен дистрибутив Fedora12+Apache (Red Hat Enterprise Linux 4 / CentOS 4, Red Hat Enterprise Linux 5 / CentOS 5,ASPLinux Server 5). В других продуктах линукса разница только в необходимости установки репозитариев.
Устанавливаем Nginx:
Код:
yum install nginx
Исправляем конфиг Nginx /etc/nginx/nginx.conf
Код:
user nginx;
## указываем число процессов по числу ядер
worker_processes 1;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;
events {
## кол-во одновременныех подключений
worker_connections 1024;
}
http {
## подключаем обработчики мим-типов
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
## экономит память, разгружает процессор
sendfile on;
## пакетирует данные, сбрасывает разорванный пакет
tcp_nopush on;
## устанавливает время ожидания ответа apache
keepalive_timeout 15;
## сбрасывает неполные пакеты данных, работает с keep_alive, считается взаимоискл с tcp_nopush но у меня работает лучше с двумя.
tcp_nodelay on;
## включаем сжатие файлов, указываем типы
gzip on;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
#
## подключаем конфиги обработчиков
include /etc/nginx/conf.d/*.conf;
## указываем локальный адрес для бекэнда
upstream backend {
server 127.0.0.1:8080;
}
#
server {
## подключаемся к внешнему порту
listen 80;
## указываем имя сервера
server_name mysite.com www.mysite.com;
## подключаем бекэнд, присваиваем заголовкам переменные
location / {
proxy_pass https://backend;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
#
## забираем у апача статику и отдаем напрямую
location ~* ^.+\\.(jpg|jpeg|png|css|js|tft|sys|ini|bmp|ico|rar)$ {
root /var/www/user/data/www/mysite.com;
# пишем логи
access_log /var/www/httpd-logs/mysite.com.access.log ;
error_log /var/www/httpd-logs/mysite.error.log ;
}
#
}
}
Для связки Nginx с Apache необходим модуль mod_rpaf , устанавливаем:
Код:
cd /usr/local/src
wget https://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c # если апач1 то в начале asxp
Далее необходимо изменить конфиг Apache etc/httpd/conf/httpd.conf
Добавляем в файл:
Код:
## меняем порт 80 на 8080
Listen 8080
## раскоментим и впишем свой сайт
ServerName mysite.com
## подключаем модуль mod_rpaf дописав в список модулей
LoadModule rpaf_module modules/mod_rpaf-2.0.so
## Указываем внутренный порт и меняем пути на свои
NameVirtualHost *:8080
<VirtualHost *:8080 >
ServerName mysite.com
CustomLog /var/www/httpd-logs/mysite.access.log combined
DocumentRoot /var/www/user/data/www/mysite.com
ErrorLog /var/www/httpd-logs/mysite.com.error.log
ServerAdmin i@mysite.com
ServerAlias www.mysite.com
SuexecUserGroup user user
AddHandler php-cgi .php .php3 .php4 .php5 .phtml
ScriptAlias /php-bin/ /var/www/user/data/php-bin/
ScriptAlias /cgi-bin/ /var/www/user/data/www/mysite.com/cgi-bin/
</VirtualHost>
## Включили модуль, имя сервера, указали мостик локалхост и сервер, обозначили тип заголовков
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 хх.хх.хх.хх ## xx.xx.xx.xx - IP сервера
RPAFheader X-Real-IP
</IfModule>
Теперь рестартуем Apache и Nginx
Код:
service httpd restart
service nginx restart
Конфиги на сто рабочие, собраны собственноручно экспериментальным путем, тех кто шарит прошу покритиковать с конструктивом. Предлагайте свои способы ускорения Joomla, обсудим!
Вкладення
Останнє редагування:

