Re: request uri обработка директорий

iks nginx-forum at nginx.us
Sat Jun 13 13:54:39 UTC 2015


Не помогало это через location.
Решил проблему переноса нужной информации в аргумент, теперь вот так
нормально меняет порт и директорию ROOT.

server {
	server_name node.site.ru www.node.site.ru;
	listen *:80;
	disable_symlinks if_not_owner from=$root_path;
	index index.htm index.html index.shtml index.php index.phtml;
	set $root_path /home/user/public_html/site.ru;
	set $port_path 8000;

	if ( $args ~* (.*)server=dir ) {
		set $port_path 8001;
		set $root_path /home/user/public_html/site.ru/dir;
	}
	if ( $args ~* (.*)server=dir1 ) {
		set $port_path 8002;
		set $root_path /home/user/public_html/site.ru/dir1;
	}
	rewrite ^(.*)/(dir|dir1)(.*) $1$3 last;
	
	location ~*
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
		root $root_path;
		access_log /home/iks/logs/httpd-logs/node.rusdeb.ru.access.log;
		error_page 404 = @fallback;
	}
	location / {
		proxy_pass http://127.0.0.1:$port_path;
		proxy_redirect http://127.0.0.1:$port_path/ /;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Real-IP $remote_addr;
	}

	location @fallback {
		proxy_pass http://127.0.0.1:$port_path;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

Вполне подойдет для обработки несколько запущеных серверов Node.js через
один поддомен.

P.S. Можно похоже и с обрабрткой директории запроса, но пробовал через $uri
и $request_uri ни чего не выходило, может другую переменую нужно
обрабатывать.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,259583,259595#msg-259595



Подробная информация о списке рассылки nginx-ru