Можно ли настроить nginx так, чтобы домен / пользователь был проксирован на порт, выделенный для этого пользователя.
Затем пользователь может запустить другой экземпляр nginx или единорога на этом порту.
Это возможно? Я хотел бы базу данных, которая контролирует отношение пользователя к номеру порта.
Вы можете использовать комбинацию nginx
map
и rewrite
модули. Однако вам понадобится сценарий для генерации конфигурации карты из базы данных.
Целевая конфигурация будет выглядеть так:
map $uri $new {
default http://www.domain.com/;
include /path/to/usermap.txt;
}
server {
server_name www.domain.com;
rewrite ^ $new redirect;
}
С участием /path/to/usermap.txt
генерируется сценарием с выводом, подобным этому:
# automatically generated by a script
/~alice http://www.domain.com:8001/;
/~bob http://www.domain.com:8002/;
/~chuck http://www.domain.com:8003/;