该 jwilder / nginx的代理 docker image允许您为每个虚拟主机添加配置,您可以在其中添加重写规则,如中所述 这里 :
要基于每个VIRTUAL_HOST添加设置,请在下面添加配置文件 /etc/nginx/vhost.d 。每个VIRTUAL_HOST文件必须完全在。之后命名 VIRTUAL_HOST 。
/etc/nginx/vhost.d
VIRTUAL_HOST
为了允许动态配置虚拟主机,因为添加和删除后端,最好将外部目录挂载为/etc/nginx/vhost.d,而不是使用派生图像或挂载单个配置文件。
例如,如果您有一个名为的虚拟主机 www.app.example.com ,您可以为该主机提供自定义重写配置,如下所示:
www.app.example.com
下 /etc/nginx/vhost.d 创建一个名为的文件 www.app.example.com 然后添加以下内容:
return 301 $scheme://app.example.com$request_uri;
然后创建一个新的nginx容器并将该目录挂载到它。如果你检查过 /etc/nginx/conf.d/default.conf 您会注意到虚拟主机已被修改为以下内容:
/etc/nginx/conf.d/default.conf
server { server_name www.app.example.com; listen 80 ; access_log /var/log/nginx/access.log vhost; include /etc/nginx/vhost.d/www.app.example.com; location / { proxy_pass http://www.app.example.com; } }
包含行包含 返回 我们写的声明,当然你可以添加更多的重写规则