Nginx как прокси для Apache2
Имеем сервер под Linux Debian
# uname -a
Linux server 2.6.18-6-686 #1 SMP Mon Oct 13 16:13:09 UTC 2008 i686 GNU/Linux
# nginx -V
nginx version: nginx/1.1.17
# apache2 -V
Server version: Apache/2.2.9 (Debian)
Конфигурация Nginx
# cat /usr/local/nginx/conf/sites-enabled/blog.a-zazell.ru
server {
listen 93.190.18.10:80;
server_name blog.a-zazell.ru ;
root /var/www/a-zazell.ru/blog/wp;
index index.php;
access_log /var/log/nginx/blog.a-zazell.ru_access.log;
error_log /var/log/nginx/blog.a-zazell.ru_error.log;
# Все проксируем без кэширования на Apache2
location / {
proxy_pass http://127.0.0.1:8888/;
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_redirect off;
client_max_body_size 10m;
proxy_cache off;
}
# Статику отдает Nginx
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
#log_not_found off;
}
# Если нет иконки, не надо мусорить в Лог
location = /favicon.ico {log_not_found off;access_log off;}
# Смотреть файлы с точки НЕЛЬЗЯ
location ~ /\. {deny all;access_log off;log_not_found off;}
# Роботам в Лог не сорить
location = /robots.txt { access_log off; log_not_found off; }
}
# Переносим Всех, кто зашел на http://a-zazell.ru в блог
server {
listen 93.190.18.10:80;
server_name www.a-zazell.ru a-zazell.ru;
return 301 http://blog.a-zazell.ru;
}
Конфигурация Apache2
# cat /etc/apache2/sites-enabled/blog.a-zazell.ru
<VirtualHost *:8888>
ServerName blog.a-zazell.ru
ServerAdmin mail@a-zazell.ru
DocumentRoot /ftp/httpd/a-zazell.ru/blog/wp
ErrorLog /var/log/apache2/blog.a-zazell.ru_error.log
TransferLog /var/log/apache2/blog.a-zazell.ru_access.log
RewriteEngine On
<Directory /var/www/a-zazell.ru/blog/wp/>
Options -Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
order deny,allow
allow from all
</Directory>
</VirtualHost>
Вышеописанной конфигурации вполне достаточно. Еще не забудьте добавить в Apache2 модуль rpaf (libapache2-mod-rpaf).
(c) blog.a-zazell.ru