Разве server_name * не будет коллизией с listen 80 default?<br>У нас это реализовано именно так - перечисляются все виртуальные хосты а всё что не совпало идёт на vhost где listen 80 default;<br>Альтернативно мне кажется можно хост который должен быть * разместить после всех вхостов, тогда он будет обрабатываться при отсутствии других совпадений<br>
<br><div class="gmail_quote">2008/5/27 Alexey V. Karagodov <<a href="mailto:kav@karagodov.name">kav@karagodov.name</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
ситуация:<br>
<br>
server {<br>
listen 80 default accept_filter=httpready;<br>
include include/rewrite;<br>
include include/location_error;<br>
set $_document_root /srv/www/vhosts/service/core/;<br>
root $_document_root;<br>
<br>
server_name<br>
#список проксируемых виртуальных хостов<br>
<a href="http://www.somesite.ru" target="_blank">www.somesite.ru</a><br>
<a href="http://www.somesite2.ru" target="_blank">www.somesite2.ru</a><br>
<a href="http://www.somesite3.ru" target="_blank">www.somesite3.ru</a><br>
<a href="http://www.company.ru" target="_blank">www.company.ru</a><br>
;<br>
<br>
location / {<br>
proxy_set_header Host $host;<br>
proxy_set_header X-Real-IP $remote_addr;<br>
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
proxy_set_header X-Real-URI $request_uri;<br>
proxy_set_header X-Real-Request-Scheme $scheme;<br>
proxy_redirect false;<br>
proxy_pass <a href="http://http-cluster" target="_blank">http://http-cluster</a>$request_uri;<br>
}<br>
}<br>
server {<br>
listen 80;<br>
server_name<br>
<a href="http://secure.company.ru" target="_blank">secure.company.ru</a><br>
<a href="http://secure2.company.ru" target="_blank">secure2.company.ru</a><br>
;<br>
rewrite ^(.*) https://$host$uri$is_args$args permanent;<br>
}<br>
server {<br>
listen 80;<br>
server_name .<a href="http://somesite.ru" target="_blank">somesite.ru</a>;<br>
rewrite ^(.*) <a href="http://www.somesite.ru" target="_blank">http://www.somesite.ru</a>$1 permanent;<br>
}<br>
server {<br>
listen 80;<br>
server_name .<a href="http://somesite2.ru" target="_blank">somesite2.ru</a>;<br>
rewrite ^(.*) <a href="http://www.somesite2.ru" target="_blank">http://www.somesite2.ru</a>$1 permanent;<br>
}<br>
server {<br>
listen 80;<br>
server_name .<a href="http://somesite3.ru" target="_blank">somesite3.ru</a>;<br>
rewrite ^(.*) <a href="http://www.somesite3.ru" target="_blank">http://www.somesite3.ru</a>$1 permanent;<br>
}<br>
server {<br>
listen 80;<br>
server_name *;<br>
rewrite ^(.*) <a href="http://www.company.ru" target="_blank">http://www.company.ru</a>$1 permanent;<br>
}<br>
<br>
<br>
на server_name *; естественно выдаёт ошибку в конфиге<br>
единственный work-around вот такой:<br>
<br>
server_name<br>
<a href="http://127.0.0.1" target="_blank">127.0.0.1</a><br>
<a href="http://192.168.4.1" target="_blank">192.168.4.1</a><br>
<a href="http://192.168.4.2" target="_blank">192.168.4.2</a><br>
<a href="http://10.20.30.40" target="_blank">10.20.30.40</a><br>
<a href="http://10.20.30.41" target="_blank">10.20.30.41</a><br>
~^(.*)$<br>
;<br>
<br>
т.е. перечисляю все ИП адреса сервера и регекспом делаю аналог *<br>
<br>
всем этим бредом, который я называю конфигом, я хочу добиться следующего:<br>
при обращении к несуществующему виртуальному хосту следует рерайт на сайт компании<br>
при обращении к сайтам клиентов, следует рерайт на красивое имя www. и тд (если это нужно)<br>
виртуальные хосты в отдельном конфиге<br>
<br>
вот наверно единственное, для чего нужно server_name *; ...<br>
<br>
<br>
</blockquote></div><br>