ситуация:
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 *; ...