Re: верните server_name *; # пожалуйста :)
TDz
tdz at modestus.org
Wed May 28 02:53:58 MSD 2008
Разве server_name * не будет коллизией с listen 80 default?
У нас это реализовано именно так - перечисляются все виртуальные хосты а всё
что не совпало идёт на vhost где listen 80 default;
Альтернативно мне кажется можно хост который должен быть * разместить после
всех вхостов, тогда он будет обрабатываться при отсутствии других совпадений
2008/5/27 Alexey V. Karagodov <kav at karagodov.name>:
>
> ситуация:
>
> 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 *; ...
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080528/065f4dca/attachment.html>
More information about the nginx-ru
mailing list