LINUX.ORG.RU
решено ФорумAdmin

Общий proxy_pass

 


0

1

Приветствую!

Совсем недавно поднимал вопрос, но сейчас уже более конкретизировано :)

Один из серверов u00001.conf

server
{
    root /mnt/home/u00001/site1.ru/public_html;
    server_name site1.ru;
    index index.php;

    location ~ /\.ht {
            deny all;
    }

    location ~* ^.+\.(js|JPG|jpg|png|jpeg|gif|zip|tgz|gz|rar|doc|xls|exe|pdf|ppt|txt|wav|bmp|rtf)$ {
        expires 30d;
        root /mnt/home/u00001/site1.ru/public_html;
    }
    
    location /
	{
        proxy_pass         http://192.168.0.2:80;
        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_connect_timeout      61;
        proxy_send_timeout         61;
        proxy_read_timeout         61;
	}
}

Блоки запрета .ht* и proxy_pass повторяются в каждом сервере

Хотелось бы сервера nginx записывать след. образом:

server
{
	root /mnt/home/u00001/site1.ru/public_html;
	server_name site1.ru;
	index index.php;
	
	location ~* ^.+\.(js|JPG|jpg|png|jpeg|gif|zip|tgz|gz|rar|doc|xls|exe|pdf|ppt|txt|wav|bmp|rtf)$ {
		expires 30d;
		root /mnt/home/u00001/site1.ru/public_html;
	}
}

server
{
	root /mnt/home/u00001/site2.ru/public_html;
	server_name site2.ru;
	index index.php;
	
	location ~* ^.+\.(js|JPG|jpg|png|jpeg|gif|zip|tgz|gz|rar|doc|xls|exe|pdf|ppt|txt|wav|bmp|rtf)$ {
		expires 30d;
		root /mnt/home/u00002/site2.ru/public_html;
	}
}

А след. блоки вынести в основной конфигурационный файл nginx.conf:

location ~ /\.ht {
	deny all;
}

location /
{
    proxy_pass         http://192.168.0.2:80;
    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_connect_timeout      61;
    proxy_send_timeout         61;
    proxy_read_timeout         61;
}

Т.к. они повторяются и хотелось бы как-то привести в порядок все это дело

Я пробовал по-разному указывать в nginx.conf, но у меня не получилось завести. Гуглил - не нашел обсуждения подобного вопроса

Смотрю в сторону upstream, но сильно далек от настройки ngninx

В итоге хочется иметь обработку статики на ngnix, а все остальное отсылать на apache

Может кто делал подобное или сможет отправить куда надо? :) Спасибо за помощь!

Ответ на: комментарий от Bers666

кроме того, если vhost-ы уж совсем однотипные, то можно создать _1_ vhost с таким содержимым унутре:

 set $host_nonwww $host;
 if ($host ~ "^www\.(.*)$") {set $host_nonwww $1;}
 root /var/www/$host_nonwww;
Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

О, все гениальное просто! Спасибо большое, сейчас попробую

no_Bra1n
() автор топика
Ответ на: комментарий от Bers666

Дело в том, что структура

/home/u00001/domain1.ru/
/home/u00001/domain3.ru/
/home/u00002/domain4.ru/

И невозможно понять в какой папке лежит запрошенный домен

no_Bra1n
() автор топика
Ответ на: комментарий от Bers666

Спасибо большое за помощь!

/etc/nginx/users/u00001.conf

server
{
    root /mnt/home/u00001/site1.ru/public_html;
    server_name site1.ru;

    include /etc/nginx/proxy.conf;
}

server
{
    root /mnt/home/u00001/site2.ru/public_html;
    server_name site2.ru;

    include /etc/nginx/proxy.conf;
}

/etc/nginx/proxy.conf

location ~* ^.+\.(js|JPG|jpg|png|jpeg|gif|zip|tgz|gz|rar|doc|xls|exe|pdf|ppt|txt|wav|bmp|rtf)$ {
	expires 30d;
}

location ~ /\.ht {
	deny all;
}

location / {
	proxy_pass         http://192.168.0.2:80;
	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_connect_timeout      61;
	proxy_send_timeout         61;
	proxy_read_timeout         61;
}

Всё работает! :)

no_Bra1n
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.