Nginx ускоряет работу сайта, он моментально отдает статические данные типа картинок, нет смысла обрабатывать картинки или файлы неизменяющиеся с помощью Apache.
Nginx сервер настраивается как проксирующий сервер для Apache.

Apache будет на 8080 порту за nginx, который на 80 порту.

Установим если нету httpd

yum install httpd mod_ssl

и в /etc/httpd/conf/httpd.conf настроим:

KeepAlive Off
Listen 8080
StartServers 2
MinSpareServers 2
MaxSpareServers 4
ServerLimit 6
MaxClients 10
MaxRequestsPerChild 800
User apache
Group apache
NameVirtualHost *:8080

Установка для CentOS/RHEL/Fedora:

yum install epel-release
yum install nginx

откроем файл /etc/nginx/nginx.conf и добавим в соответствующие разделы:
user apache;
http {

client_max_body_size 24M;
#tcp_nopush on;

gzip on;
gzip_min_length 1100;
gzip_proxied any;
gzip_disable «msie6»;
gzip_comp_level 8;

gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json;

}

Создадим конфигурационный файл proxy.conf в /etc/nginx с таким содержимым:

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;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           32 4k;

Еще один файл создадим /etc/nginx/sites-enabled/wordpress.tk:

server {
  listen 80;
  server_name www.wordpress.tk wordpress.tk;
  
  access_log /var/log/nginx/wordpress.tk.log;
  
  location / {
	try_files $uri $uri/ /index.php;
        proxy_pass http://localhost:8080;
  }
  
  location ~ \.php$ {
    proxy_pass http://localhost: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;
	client_max_body_size    10m;
	client_body_buffer_size 128k;
	proxy_connect_timeout   90;
	proxy_send_timeout      90;
	proxy_read_timeout      90;
	proxy_buffers           32 4k;
  }
  
  location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
    root /var/www/html/wordpress.tk;
  }

  location ~ /\. {
   deny all; #access disable .htaccess
  }
}

Проверка конфига на валидность:

# nginx -t

С помощью nginx браузеру отдаются все файлы которые соответствуют маске location, а оставшиеся обращения передаются в Apache. То есть указаны статические файлы, что будут отданы с помощью nginx.

Далее нужно добавить новый виртуальный хост в Apache.
NameVirtualHost wordpress.tk:8080

ServerName wordpress.tk
ServerAlias *.wordpress.tk wordpress.tk

DocumentRoot /var/www/html/wordpress.tk

ErrorLog /var/log/wordpress.tk-error_log
CustomLog /var/log/wordpress.tk-access_log common

Также на директорию wordpress.tk, нужно применить:
chown -R apache:apache ./wordpress54.tk/
chmod -R 755 /var/www/html/

Далее нужно установить модуль mod_rpaf для Apache, чтобы он мог получить информацию о пользователе:
Подключим репозиторий:

# rpm -ivh http://download.ispsystem.com/repo/centos/release/6/x86_64/mod_rpaf-0.8.2-1.el6.x86_64.rpm

mod_rpaf — установлен.

Теперь откроем конфиг для /etc/httpd/conf.d/mod_rpaf.conf
Сделайте там такие значения:
LoadModule rpaf_module modules/mod_rpaf.so

RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1 10.0.0.1
RPAF_Header X-Forwarded-For
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On

Перезапустим Apache и nginx.
service httpd restart && service nginx restart

Проверим кем сейчас слушаются порты:

# netstat -tlpn

Установить Nginx перед Apache
Кстати над левыми портами надо поработать — закрыть.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *