在 jwilder/nginx-proxy Docker 容器中重写 URL

Red*_*dro 2 nginx docker jwilder-nginx-proxy

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

如何/在jwilder/nginx-proxyDocker 容器中的哪里nginx.tmpl或者我可以添加一些简单的重写规则?

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

Mos*_*ein 5

jwilder / nginx的代理搬运工图像允许您添加每个虚拟主机的配置中所述,您可以添加重写规则在这里

要在每个 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;
Run Code Online (Sandbox Code Playgroud)

然后创建一个新的 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

include 行包含我们编写的return语句,当然您可以向其中添加更多重写规则