如何在docker上设置nginx中的大量dynamic虚拟主机?

如何在nginx中设置大量dynamic的虚拟主机如这里所看到的除了使用docker作为主机?

我目前有这样的设置:

# default.conf server { root /var/www/html/$http_host; server_name $http_host; } 

并在我的Dockerfile

 COPY default.conf /etc/nginx/sites-enabled/default.conf 

而我build立的形象和运行后:

 docker run -d 80:80 -v www/:/var/www/html 

但是,当我在我的主机文件中指向一个新的域(example.dev)并且创build一个www / example.dev / index.html。 它根本不起作用。

该设置是正确的,它在我的系统上测试。 唯一的问题是你在错误的路径上复制文件。 Docker镜像默认情况下不使用sites-enabled路径。 默认配置加载/etc/nginx/conf.d所有内容。 所以你需要复制到那个路径,并休息所有的伟大作品

 COPY default.conf /etc/nginx/conf.d/default.conf 

确保正确映射您的卷。 在测试时,我使用下面的docker命令测试了它

 docker run -p 80:80 -v $PWD/www/:/var/www/html -v $PWD/default.conf:/etc/nginx/conf.d/default.conf nginx 

以下是命令行上的输出

 vagrant@vagrant:~/test/www$ mkdir dev.tarunlalwani.com vagrant@vagrant:~/test/www$ cd dev.tarunlalwani.com/ vagrant@vagrant:~/test/www/dev.tarunlalwani.com$ vim index.html vagrant@vagrant:~/test/www/dev.tarunlalwani.com$ cat index.html <h1>This is a test</h1> 

在浏览器上输出

Nginx的测试输出