是否可以配置 nginx 以便域/~用户代理到为该用户预留的端口。
然后用户可以在该端口上运行 nginx 或 unicorn 的另一个实例。
这可能吗?但是我想要一个控制用户与端口号关系的数据库。
答案1
你可以使用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/;