我正在容器化一些网站。我希望能够迁移一些重写规则以自动www
在请求中附加或删除域名。
如何/在jwilder/nginx-proxy
Docker 容器中的nginx.tmpl或其他地方我可以添加一些简单的重写规则吗?
所有代理容器的一条规则都可以,尽管如果可以为每个容器指定规则会很好。
我正在容器化一些网站。我希望能够迁移一些重写规则以自动www
在请求中附加或删除域名。
如何/在jwilder/nginx-proxy
Docker 容器中的nginx.tmpl或其他地方我可以添加一些简单的重写规则吗?
所有代理容器的一条规则都可以,尽管如果可以为每个容器指定规则会很好。
jwilder /nginx-proxy docker镜像允许您为每个虚拟主机添加配置,您可以在其中添加重写规则,如下所述:
要基于每个 VIRTUAL_HOST 添加设置,请将配置文件添加到/etc/nginx/vhost.d
. per-VIRTUAL_HOST 文件必须以VIRTUAL_HOST
.
为了允许在添加和删除后端时动态配置虚拟主机,将外部目录挂载为 /etc/nginx/vhost.d 是最有意义的,而不是使用派生映像或挂载单个配置文件。
例如,如果您有一个名为 的虚拟主机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
过,您会注意到虚拟主机已被修改为以下内容:
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;
}
}
include 行包含我们编写的return语句,当然您可以向其中添加更多重写规则