Nginx + Apache2

nginx apache2 Установка связки Nginx и Apache2 на сервере Debian!

Доброго времени суток! И так, я не давно решил попробовать ускорить свой сервер. На одном из онлайн тестеров я запустил проверку своего сайта. И оказалось что при на нагрузке всего в 50 клиентов, мой сервер открывал страницы за 32 секунды. После установки Nginx это время сократилось до 9 секунд
Все это работает благодаря тому, что Nginx выступает в роли прокси сервера. Поскольку он более легковесный и лучше работает с медленными соединениями, мы ставим его на первый план. Также Nginx будет раздавать нашу статическую информацию: картинки, медиа, html, java. А php запросы мы будем отправлять Apache.

Приступим к настройке

В самом начале добавим репозиторий nginx в нашу систему. Для этого откроем /etc/apt/sources.list:


nano /etc/apt/sources.list


И добавим в конц файла следующее:


deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx


После чего добавляем ключ и устанавливаем nginx.


wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
apt-get update
apt-get install nginx


После установки открываем конфигурационный файл /etc/nginx/nginx.conf и приводим его к такому виду


user www-data;
worker_processes 1;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;
access_log /var/log/nginx/access.log;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;

gzip on;
gzip_proxied any;
gzip_min_length 1100;
gzip_http_version 1.0;
gzip_buffers 4 8k;
gzip_comp_level 9;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

}


После чего создаем файл виртуального хоста nano /etc/nginx/sites-enabled/tvoidomen.ru


server {

listen 80;
server_name tvoidomen.ru www.tvoidomen.ru;
proxy_temp_path /var/nginx/temp/hostlip.ru;
location ~* \.(gif|jpg|jpeg|png|ico|css|swf|js|html|htm|xml|txt|gz|bmp|xls)${
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Host $http_host;
proxy_set_header X-URI $uri;
proxy_set_header X-ARGS $args;
proxy_set_header Refer $http_refer;
root /var/www/;

client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
location ~*(comments|wp-admin)* {
proxy_pass http://127.0.0.1:8080;

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Host $http_host;
proxy_set_header X-URI $uri;
proxy_set_header X-ARGS $args;
proxy_set_header Refer $http_refer;

client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
}


Строка proxy_pass http://127.0.0.1:8080; это и есть перенаправлявшие на наш сервер Apache
С настройкой Nging закончили. Переходим к Apache. Команда на установку Apache и PHP.


apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libapache2-mod-ruby php5-curl


После чего настраиваем Апаче на прослушку 8080 порта по locoalhost. Для этого открываем файл nano /etc/apache2/ports.conf и приводим к виду:


# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:8080
Listen 127.0.0.1:8080


Теперь отредактируем файл виртуального хоста по умалчанию nano /etc/apache2/sites-available/default



ServerAdmin webmaster@localhost

DocumentRoot /var/www

Options FollowSymLinks
AllowOverride All


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined


После чего перезагружаем сервера.


/etc/init.d/nginx restart
/etc/init.d/apache2 restart


В принципе все. Про то как настроить чтоб Эта связка адекватно передавало IP смотрите в следующей статье.

Оставьте комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.