Apache 针对每个用户的新docker容器
我正在构建一个“黑客自我”挑战。用户可以从那里侵入网站并获得根访问权限 我在docker容器中做了这个,以防止用户伤害主机或其他游戏玩家(容器) 我不能为每个用户将其重定向到不同的端口,因为用户可以对服务器进行端口扫描并找到不同的容器Apache 针对每个用户的新docker容器,apache,docker,Apache,Docker,我正在构建一个“黑客自我”挑战。用户可以从那里侵入网站并获得根访问权限 我在docker容器中做了这个,以防止用户伤害主机或其他游戏玩家(容器) 我不能为每个用户将其重定向到不同的端口,因为用户可以对服务器进行端口扫描并找到不同的容器 server { listen ...; ... location /a1b2c3 { proxy_pass http://a1b2c3:8080; } location /a2b1c4 { proxy_pass http://a2b
server {
listen ...;
...
location /a1b2c3 {
proxy_pass http://a1b2c3:8080;
}
location /a2b1c4 {
proxy_pass http://a2b1c4:8080;
}
...
}
我想要的是
WARE“A1B2C3”是其自身容器的唯一标识符
有人能告诉我怎么做吗?使用nginx,您可以执行以下操作-您可以重写给定路径的请求,如下所示: 此处的名称是现有的运行容器
server {
listen ...;
...
location /a1b2c3 {
proxy_pass http://a1b2c3:8080;
}
location /a2b1c4 {
proxy_pass http://a2b1c4:8080;
}
...
}
我将与Jwilder/Nginx一起完成这项任务。就从另一个开始吧 具有“随机”子域的容器 启动Nginx/Jwilder
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
启动您的容器
for i in {1..5}
do
docker run -e VIRTUAL_HOST=foo-$i.bar.com mycontainer
done
Jwilder/Nginx将在每个启动的容器上更新,并将注册
新VHOST。您需要通过http访问它吗?如果是这样,您需要在您这边运行一些代理,将子域重定向到适当的容器中,但这意味着hackme是基于http端口的?是的,这部分是基于http端口的。对于使用nginx和nginxproxy的示例,您可以将不同子域的端口80重定向到不同的容器组。例如,staging.example.com到staging main,test.example.com到test main。可能你想要不同的地址也是可能的。使用nginx本身,你可以将流量从不同的URL重定向到某些给定的容器。但是,对于所有唯一的URL,它最终指向同一个容器,不是吗?不,每个容器都有其唯一的子域,nginx指向每个容器。