2

我正在容器化一些网站。我希望能够迁移一些重写规则以自动www在请求中附加或删除域名。

如何/在jwilder/nginx-proxyDocker 容器中的nginx.tmpl或其他地方我可以添加一些简单的重写规则吗?

所有代理容器的一条规则都可以,尽管如果可以为每个容器指定规则会很好。

4

1 回答 1

5

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语句,当然您可以向其中添加更多重写规则

于 2019-03-13T08:41:39.233 回答