верните server_name *; # пожалуйста :)

Alexey V. Karagodov kav at karagodov.name
Tue May 27 23:45:42 MSD 2008


ситуация:

	server	{
		listen				80 default accept_filter=httpready;
		include				include/rewrite;
		include				include/location_error;
		set				$_document_root /srv/www/vhosts/service/core/;
		root				$_document_root;

		server_name
					#список проксируемых виртуальных  
хостов
					www.somesite.ru
					www.somesite2.ru
					www.somesite3.ru
					www.company.ru
		;

		location			/ {
			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_set_header		X-Real-URI			$request_uri;
			proxy_set_header		X-Real-Request-Scheme		$scheme;
			proxy_redirect			false;
			proxy_pass			http://http-cluster$request_uri;
		}
	}
	server	{
		listen				80;
		server_name
							secure.company.ru
							secure2.company.ru
		;
		rewrite				^(.*)				https://$host$uri$is_args$args	permanent;
	}
	server	{
		listen				80;
		server_name		.somesite.ru;
		rewrite				^(.*)	http://www.somesite.ru$1	permanent;
	}
	server	{
		listen				80;
		server_name		.somesite2.ru;
		rewrite				^(.*)	http://www.somesite2.ru$1	permanent;
	}
	server	{
		listen				80;
		server_name		.somesite3.ru;
		rewrite				^(.*)	http://www.somesite3.ru$1	permanent;
	}
	server	{
		listen				80;
		server_name		*;
		rewrite				^(.*)	http://www.company.ru$1		permanent;
	}


на server_name *; естественно выдаёт ошибку в  
конфиге
единственный work-around вот такой:

		server_name
						127.0.0.1
						192.168.4.1
						192.168.4.2
						10.20.30.40
						10.20.30.41
						~^(.*)$
		;

т.е. перечисляю все ИП адреса сервера и  
регекспом делаю аналог *

всем этим бредом, который я называю  
конфигом, я хочу добиться следующего:
при обращении к несуществующему  
виртуальному хосту следует рерайт на  
сайт компании
при обращении к сайтам клиентов,  
следует рерайт на красивое имя www. и тд  
(если это нужно)
виртуальные хосты в отдельном конфиге

вот наверно единственное, для чего  
нужно server_name *; ...






More information about the nginx-ru mailing list