nginx и location по имени домена

seal
На сайте с 10.10.2006
Offline
62
2394

всем привет.

есть nginx (работает от www:www)

под ним apache-itk

под ним пользовательские каталоги (user1:user1)

права на док.рут пользователя 755

на файлы пользователя 644

www состоит в группе user1

суть задачи которую хочется сделать - в конфигах nginx

server {

listen 111.222.333.444:80 accept_filter=httpready;

server_name site1.ru site2.ru site3.ru

т.е. разные вирт домены которые пошли на апач

хочется сделать чето похожее на

location site1.ru jpg,gif,bmp {

root /home/site1.ru

}

location site2.ru jpg,gif,bmp {

root /home/site1.ru

}

location site2.ru jpg,gif,bmp {

root /home/site1.ru

}

чтоб для каждого сайта статику отдавать с его документ рута

помогите написать location :)

--- спутниковое телевидение (http://www.sat-expert.com/)
R
На сайте с 14.02.2010
Offline
77
#1

так не выйдет нужно каждому серверу по отдельной директиве server {}

хотя можно наверное чере if $server_name с последующим переходом на именованный локейшн, но это априори неверный подход..

upd:

хотя нет, что-то я еще не проснулся

root /var/www/$server_name;

location \.(jpg|jpeg|gif|png)$ {

try_files $uri @backend

}

как-то так...

Himiko
На сайте с 28.08.2008
Offline
560
#2

А не лучше корректно сделать? Т.е. создать отдельный server {} под каждый виртуалхост?

Himiko добавил 16.11.2010 в 09:47

r0mik:
if $server_name

Нет такой переменной.

Я точно не помню, но может "if $host"

Но это изврат какой-то, имхо.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
R
На сайте с 14.02.2010
Offline
77
#3
Himiko:
Нет такой переменной.

да с if-ом это я что-то загнул с утра, да))

но переменная такая есть, впрочем $host даже лучше наверное...

я там поправил выше. но корректней все ж по отдельному server {}, то есть избавиться от этих переменных и тем более от if...

точней try_files $uri =404;

seal
На сайте с 10.10.2006
Offline
62
#4
Himiko:
создать отдельный server {} под каждый виртуалхост

отличный совет! спасибо попробую.

Himiko
На сайте с 28.08.2008
Offline
560
#5
r0mik:
но корректней все ж по отдельному server {}

Естественно =)

seal
На сайте с 10.10.2006
Offline
62
#6
Himiko:
создать отдельный server {} под каждый виртуалхост

отличный совет! спасибо попробую.

seal добавил 16.11.2010 в 10:43

но ведь получится что висит он на одном и том же айпи и порту ...

server {

listen 111.222.333.444:80 accept_filter=httpready;

server_name www.site1.ru;

}

server {

listen 111.222.333.444:80 accept_filter=httpready;

server_name www.site2.ru;

}

server {

listen 111.222.333.444:80 accept_filter=httpready;

server_name www.site2.ru;

}

и в итоге как следствие

[emerg]: a duplicate listen options for 111.222.333.444:80

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