Для того чтобы снизить нагрузку на сервер, бывает полезно поставить nginx как front-end сервер который будет обрабатывать всю статику вместо Apache
то нужно.
Сервер на ubuntu/debian/etc
Доступ по ssh
10 минут времени
Настройка Apache
Открываем порты Apache:
nano /etc/apache2/ports.conf
И ищем строки:
NameVirtualHost *:80
Listen 80
Меням на порт 82:
NameVirtualHost *:82
Listen 82
Так же меняем порт для корневого хоста:
nano /etc/apache2/sites-available/default
VirtualHost *:82>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Перезапускаем Apache:
/etc/init.d/apache2 restart
И проверяем на каком порте у нас apache:
netstat -tunap | grep apache2
Должны увидить, что-то вроде этого:
tcp 0 0 0.0.0.0:82 0.0.0.0:* LISTEN 5851/apache2
Если все правельно, то перейдем к IspConfig, подправим шаблоны панели для apache, но на всякий случай сохраним старые конфиги:
cd /usr/local/ispconfig/server/
cp conf/apache_ispconfig.conf.master conf-custom/
cp conf/vhost.conf.master conf-custom/
И отредактируем файлы:
nano /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master
В конце файла:
<tmpl_loop name="ip_adresses">
NameVirtualHost {tmpl_var name="ip_address"}:80
NameVirtualHost {tmpl_var name="ip_address"}:443
</tmpl_loop>
В строке заменяем на 82:
NameVirtualHost {tmpl_var name="ip_address"}:82
Открываем второй файл файл:
nano /usr/local/ispconfig/server/conf-custom/vhost.conf.master
Почти в самом начале файла ищем строку:
<VirtualHost <tmpl_var name='ip_address'>:80>
И меняем на:
<VirtualHost <tmpl_var name='ip_address'>:82>
Теперь установим модуль для apache — ibapache2-mod-rpaf:
apt-get install libapache2-mod-rpaf
И редактируем конфиг:
nano /etc/apache2/apache2.conf
Где-то , например, в конце добавляем:
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
На этом с apache закончили и переходим к Nginx
Установка и настройка Nginx.
Устанавливаем Nginx:
apt-get install nginx
И после установки удаляем стандартный virtualhost:
rm /etc/nginx/sites-available/default
Открываем наш хост:
nano /etc/nginx/sites-available/default
Вписываем слудующие:
server {
listen 80 default;
server_name _;
server_name_in_redirect off;
default_type text/html;
#### Non WWW host goes to $sup variable ####
set $sup $host;
if ($host ~* ^(www\.)(.+)) { #if WWW?
set $sup $2; # cut WWW and write it into $sup
}
access_log /var/log/ispconfig/httpd/$host/access.log;
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|html|htm|mp3)$ {
root /var/www/$sup/web;
access_log off;
expires 30d;
}
location / {
root /var/www/$sup/web;
index index.html index.htm index.php;
access_log off;
#proxy_pass http://$host:82;
proxy_pass http://127.0.0.1:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Перезапускаем наши веб сервера:
service apache2 restart
service nginx restart
На этом настройка завершена, теперь можно наслаждаться возросшей скоростью =)
то нужно.
Сервер на ubuntu/debian/etc
Доступ по ssh
10 минут времени
Настройка Apache
Открываем порты Apache:
nano /etc/apache2/ports.conf
И ищем строки:
NameVirtualHost *:80
Listen 80
Меням на порт 82:
NameVirtualHost *:82
Listen 82
Так же меняем порт для корневого хоста:
nano /etc/apache2/sites-available/default
VirtualHost *:82>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Перезапускаем Apache:
/etc/init.d/apache2 restart
И проверяем на каком порте у нас apache:
netstat -tunap | grep apache2
Должны увидить, что-то вроде этого:
tcp 0 0 0.0.0.0:82 0.0.0.0:* LISTEN 5851/apache2
Если все правельно, то перейдем к IspConfig, подправим шаблоны панели для apache, но на всякий случай сохраним старые конфиги:
cd /usr/local/ispconfig/server/
cp conf/apache_ispconfig.conf.master conf-custom/
cp conf/vhost.conf.master conf-custom/
И отредактируем файлы:
nano /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master
В конце файла:
<tmpl_loop name="ip_adresses">
NameVirtualHost {tmpl_var name="ip_address"}:80
NameVirtualHost {tmpl_var name="ip_address"}:443
</tmpl_loop>
В строке заменяем на 82:
NameVirtualHost {tmpl_var name="ip_address"}:82
Открываем второй файл файл:
nano /usr/local/ispconfig/server/conf-custom/vhost.conf.master
Почти в самом начале файла ищем строку:
<VirtualHost <tmpl_var name='ip_address'>:80>
И меняем на:
<VirtualHost <tmpl_var name='ip_address'>:82>
Теперь установим модуль для apache — ibapache2-mod-rpaf:
apt-get install libapache2-mod-rpaf
И редактируем конфиг:
nano /etc/apache2/apache2.conf
Где-то , например, в конце добавляем:
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
На этом с apache закончили и переходим к Nginx
Установка и настройка Nginx.
Устанавливаем Nginx:
apt-get install nginx
И после установки удаляем стандартный virtualhost:
rm /etc/nginx/sites-available/default
Открываем наш хост:
nano /etc/nginx/sites-available/default
Вписываем слудующие:
server {
listen 80 default;
server_name _;
server_name_in_redirect off;
default_type text/html;
#### Non WWW host goes to $sup variable ####
set $sup $host;
if ($host ~* ^(www\.)(.+)) { #if WWW?
set $sup $2; # cut WWW and write it into $sup
}
access_log /var/log/ispconfig/httpd/$host/access.log;
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|html|htm|mp3)$ {
root /var/www/$sup/web;
access_log off;
expires 30d;
}
location / {
root /var/www/$sup/web;
index index.html index.htm index.php;
access_log off;
#proxy_pass http://$host:82;
proxy_pass http://127.0.0.1:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Перезапускаем наши веб сервера:
service apache2 restart
service nginx restart
На этом настройка завершена, теперь можно наслаждаться возросшей скоростью =)
Хорошая статья. Вот еще материал по этой теме: http://plutov.by/post/nginx_static_apache_dynamic
ОтветитьУдалить