Виртуальный хостинг: nginx+apache

Oleg Gawriloff barzog at telecom.by
Thu Aug 3 12:57:26 MSD 2006


Поднята стандартаня схема: nginx на фронтенде для статика, apache на бакенде
для динамика. Конфиг и версия nginxa ниже.
Проблема следующая: в случае ссылкок вида:
http://pupkin.by/news/general/ford/~page__m11=1~news__m11=291.txt
Nginx считает что это статика и пытается это отдавать. А реально это
динамический контент с движка сайта. Т.е. Нужно если файл отсутствует то
передавать эту ссылку в бакенд. Нижеприведенная конструкция работает (т.е.
Запрос в апач передается), однако он не содержит имени виртуального хоста, к
которому относится запрос. Соотв. Апач его обрабатывает виртуальным хостом
по умолчанию. Как сделать что бы передавалось имя виртуального хоста в апач?


nginx-0.3.55
Конфиг виртуального хоста:
Http
{
			...
			optimize_server_names           off;
			...
server
{
        listen                  <some ip>:80;
        server_name             pupkun.by;
        error_page              404 index.php;
        access_log              /users/pupkin.by/log/nginx-access.log  main;
        error_log               /users/pupkin.by/log/nginx-error.log error;

        location /
        {
                proxy_pass              http://<some apache ip>;
                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_buffer_size       8k;
                proxy_buffers           4 32k;
                proxy_busy_buffers_size 64k;
                proxy_temp_file_write_size      64k;
        }        

        location ~*
^.+.(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar
|mid|midi|wav|bmp|rtf|js|txt)$
        {
                root            /users/pupkin.by;
		if (!-f $request_filename)
		{
		        break;
		        proxy_pass              http://<some apache ip>;
		}
        }
}

Signed, Oleg Gawriloff. 


More information about the nginx-ru mailing list