Автоматические поддомены и реврайты

tr00per nginx-forum at nginx.us
Wed Oct 1 13:00:19 UTC 2014


Доброго времени суток.

Столкнулся с такой проблемой.
Есть основной домен project.local. Есть несколько служебных поддоменов:
m.project.local, media.project.local, login.project.local. Для каждого из
них прописаны свои реврайры. Сейчас пилим автоматическое создание поддоменов
для профилей пользователей и как вот тут и появилась проблема.

Запросы вида m.project.local, media.project.local, login.project.local
обрабатываются как нужно. Запрос anysubdomain.project.local тоже
отрабатывает как надо и реврайтит на
project.local/Script3.aspx?ArgURL=anysubdomain.
Как при этом заставить Nginx корректно реврайтить запрос типа
anysubdomain.project.local/name-i200 на
project.local/Script1.aspx?ArgID=200&ArgURL=name

Конфиг:

server {
        listen 192.168.2.6:8080 default_server;
        server_name ~(www|m|login).project.local project.local;
        include /etc/nginx/custom.conf.d/headers.conf;
        include /etc/nginx/custom.conf.d/rewrite.conf;
        location / {
                proxy_pass http://webfarm;
        }
}
server {
        listen 192.168.2.6:8080;
        server_name media.project.local;
        include /etc/nginx/custom.conf.d/swift-rewrite.conf;
        location /{
                proxy_pass http://swift;
        }
}
server {
        listen 192.168.2.6:8080;
        server_name ~^(?<subdom>.+)\.project\.local$;
        rewrite /([a-z0-9-]+)-i([0-9]+)(/?)$
/Script1.aspx?ArgID=$2&ArgURL=$1 last;
        rewrite ^ http://www.vorotila.local/Script3.aspx?ArgURL=$subdom
last;
        location  / {
                proxy_pass http://webfarm;
        }
}

Заранее спасибо за подсказки.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,253667,253667#msg-253667



Подробная информация о списке рассылки nginx-ru