nginx.conf *.domain.com

Sergey Shepelev temotor at gmail.com
Wed Nov 18 16:38:38 MSK 2009


2009/11/18 Yuzik <nginx-forum at nginx.us>:
> Здраствуйте, у меня возникла такая проблема:
> У меня есть запись в конфиге на счет домена:
>
> server {
> server_name domain.com *.domain.com
> .......
> }
>
> и мне нужно задействовать все поддомены, кроме files
> *.domain.com -> proxy_pass http://domain.com:8080/
> files.domain.com -> proxy_pass http://domain2.com:8080/
>
> писал перед конфигом что выше
> server{
> server_name domain2.com files.domain.com
> .......
> }
>
> всеравно сервер обрабатывает домен files.domain.com как proxy_pass http://domain.com:8080/ вместо proxy_pass http://domain2.com:8080/
>
> Вот собственно вопрос, как можно эту проблему решить? Были мысли на счет RegEx в server_name чтобы исключить только поддмоен files, но еще не пробовал, может быть у когото были подобные проблемы?
>

Строковые server_name ищутся не по порядку нахождения в конфиге.

Вариант:

map $http_host $name {
    hostnames;
    default                  0;
    files.domain.com   1;
}

server {
server_name .domain.com;  # обратите внимание, нет звезды. Это чисто
косметическое изменение.
location / {
  if ($name = 0) {
    proxy_pass ...все домены;
  }
  if ($name = 1) {
    proxy_pass ...для files;
  }
}

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


More information about the nginx-ru mailing list