Subdomeny Nginx i reguły przepisywania


Próbowałem skonfigurować Nginx do tego, co obecnie skonfigurowałem w Apache, ale jak dotąd bez powodzenia.
Chciałbym, aby adres http://$1.$2.mas.example.com (gdzie $ 1 i $ 2 to dowolne subdomeny) wskazywał na root z wartością/home/webcontent/1 $/mas/$ 2/html.
Jakieś sugestie, jak to osiągnąć?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Oto prosty sposób na zrobienie tego ... nie w taki sposób, w jaki to przedstawiłeś, ale używając całej nazwy hosta jako katalogu ... Przyjrzę się dokładniej, czy nginx może zrobić to, co chcesz. Wiem, że tak
server {
listen 80;
server_name _; location/{
root/tmp/$host;
index index.html index.htm;
}
}

Spowoduje to wyświetlenie treści, jeśli klikniesz

http://host1.domain.com
http://host1.domain.com
w/tmp/host1.domain.com/index.html

EDYTOWAĆ

To właśnie chcesz zrobić
server {
listen 80;
server_name _; if ($host ~ (.*)\.(.*)\.domain.com) {
set $myroot/tmp/$1/mas/$2;
} location/{
root $myroot;
index index.html index.htm;
}
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Od nginx 0.7.40 możesz używać nazw serwerów regex.
Więc może zadziałać (nieprzetestowane):
server {
listen 80;
server_name ~^(\w+)\.(\w+)\.mas\.example\.com$
root/home/webcontent/$1/mas/$2/html
}

Widzieć

http://nginx.org/en/docs/http/ ... names
http://nginx.org/en/docs/http/ ... names

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się