nginx virtualhosts

izbushka
На сайте с 08.06.2007
Offline
110
874

Для облегчения добавления virtualhost в nginx делаю такой конфиг:

server {
server_name ~^(www\.)?(?<domain>.+)$;
root /var/www/$domain/htdocs/;
..
}

Как бы отдавать какой-то default, ошибку или rewrite, если root не существует?

izbushka добавил 20.10.2011 в 13:57

Как вариант, если возможно, при несуществующем root отдавать все (и статику) бекэнду..

Nanotik
На сайте с 20.11.2010
Offline
27
#1
izbushka:
Для облегчения добавления virtualhost в nginx делаю такой конфиг:



Как бы отдавать какой-то default, ошибку или rewrite, если root не существует?

izbushka добавил 20.10.2011 в 13:57
Как вариант, если возможно, при несуществующем root отдавать все (и статику) бекэнду..

добавить что-то вроде

error_page 404 = @backend;

и добавить location

location @backend {

proxy_pass http://IP:PORT;

}

Andreyka
На сайте с 19.02.2005
Offline
822
#2

Но тогда оно на любую 404 будет показывать

Не стоит плодить сущности без необходимости
izbushka
На сайте с 08.06.2007
Offline
110
#3

Просто если root не существует, то статика вся 404, а динамика отдается так которая в бекэнде по дефолту. И получается тупо текст без стилей и прочего на выходе

Можно конечно сделать средствами бекэнда редирект, но хотелось бы именно nginx

Andreyka
На сайте с 19.02.2005
Offline
822
#4
Joker-jar
На сайте с 26.08.2010
Offline
154
#5

Как-то так:

    if (-f /var/www/$domain/htdocs/;) {

rewrite ^(.*)$ /bla/blabla.html last;
break;
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий