Установка Apache и Nginx (mod-rpaf) на CentOS 6
Связка Apache + Nginx используется для снижения общей нагрузки на веб-севрер. Работают они по следующему принципу: более легкий Nginx занимается обработкой пользовательских запросов, выдавая статический контент, например, картинки, html-файлы, javascript-скрипты и прочее. Благодаря Nginx Apache не тратит время и ресурсы на “общение” с пользователями и обработку статики, из которой по большей части и состоит исходящий трафик. Таким образом Apache не запускает множество процессов, которые потребляют опреатинвую память.
Отметим, что связка Apache + Nginx актуальна для крупных веб-порталов с высокой посещаемостью. Рассмотрим пошагово, как установить Apache и Nginx CentOS 6.
Установка httpd
Установите Apache и PHP, mysql-server и php-mysq, а также php-mbstring:
yum -y install httpd mysql mysql-server php php-mysql php-mbstring |
Откройте файл httpd.conf при помощи текстового редактор nano:
nano /etc/httpd/conf/httpd.conf |
Выставьте следующие параметры:
Timeout 60 KeepAlive Off # MaxKeepAliveRequests 100 # KeepAliveTimeout 10 StartServers 2 MinSpareServers 2 MaxSpareServers 4 ServerLimit 6 MaxClients 10 MaxRequestsPerChild 800 Listen 8080
User apache Group apache
NameVirtualHost *:8080 |
Создайте файл конфигурации своего сайта в папке /etc/httpd/conf.d/название файла.conf. В нашем случае файл будет называться /etc/httpd/conf.d/mariavps.shn-host.ru.conf:
nano etc/httpd/conf.d/mariavps.shn-host.ru.conf |
Добавьте в него следующие строки, заменив значения в ServerName, ServerAlias, DocumentRoot и Directory на ваши:
<VirtualHost *:8080> ServerName mariavps.shn-host.ru ServerAlias www.mariavps.shn-host.ru DocumentRoot /var/www/html <Directory "/home/mariavps.shn-host.ru"> AllowOverride All Options +Includes </Directory> </VirtualHost> |
Установка nginx
Для установки nginx необходимо создать репозиторий /etc/yum.repos.d/nginx.repo:
nano /etc/yum.repos.d/nginx.repo |
Добавьте в него строки:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 |
Команда установки nginx:
yum install nginx |
Откройте файл конфигурации /etc/nginx/nginx.conf:
nano /etc/nginx/nginx.conf |
Выставьте следующие параметры:
user apache; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # access_log /var/log/nginx/access.log main; sendfile on; client_max_body_size 24M; #tcp_nopush on; keepalive_timeout 65; gzip on; gzip_min_length 1100; gzip_proxied any; gzip_disable "msie6"; gzip_comp_level 8; #gzip_types text/plain text/html text/xml application/xml application/x-javascript text/javascript text/css text/json; gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json; #gzip_types text/html text/xml text/css application/x-javascript text/javascript;
include /etc/nginx/conf.d/*.conf; } |
Создайте конфигурационный файл сайта в папке /etc/nginx/conf.d с расширением .conf. В нашем случае файл будет называться /etc/nginx/conf.d./mariavps.shn-host.ru.conf:
nano /etc/nginx/conf.d./mariavps.shn-host.ru.conf |
Добавьте в него следующие строки (встроках, где “фигурирует” mariavps.shn-host.ru впишите ваше значение (домен, папка сайта и пр.):
# A virtual host mariavps.shn-host.ru server { # listen mariavps.shn-host.ru:80; listen 80; server_name mariavps.shn-host.ru; access_log /var/log/nginx/mariavps.shn-host.ru_access.log; location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|doc|docx|pdf|xls|xlsx|rar|zip|tbz|7z|exe)$ { root /var/www/html/mariavps.shn-host.ru/; expires 10d; } location ~ /\.ht { deny all; } location = /stat { stub_status on; access_log off; # allow xx.xx.xx.xx; # deny all; } location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; log_not_found off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } |
Установка mod_rpaf
Подключите репозиторий mod_rpaf:
rpm -ivh http://download.ispsystem.com/repo/centos/release/6/x86_64/mod_rpaf-0.8.2-1.el6.x86_64.rpm |
Откройте файл конфигурации /etc/httpd/conf.d/mod_rpaf.conf:
nano /etc/httpd/conf.d/mod_rpaf.conf |
Подставьте следующие значения:
LoadModule rpaf_module modules/mod_rpaf-2.0.so # mod_rpaf Configuration RPAF_Enable On RPAF_SetHostName On RPAF_ProxyIPs 127.0.0.1 10.0.0.1 RPAF_Header X-Forwarded-For |
Сохраните изменения, а затем перезапустите httpd и nginx:
service httpd restart && service nginx restart |
Чтобы проверить, установлены ли nginx+Apache, нужно набрать в адресной строке браузера ваш-домен/info.php и ваш-домен:8080/info.php. Если вы не создали в корневом каталоге файл, “отвечающий” за вывод данной информации, сделайте это. В нашем случае info.php будет помещен в папку /var/www/html:
nano /var/www/html/info.php |
Добавьте в него скрипт:
<? phpinfo(); ?> |
Сохраните изменения и откройте в браузере ваш-домен/info.php:
Ваш-домен:8080/info.php: