0

我想在我的 nginx 中合并 2 个位置块,这样我就可以防止不必要的复制粘贴和复制以下面的块为例

location ~ \.php$ {
....
}

location ~ ^/somedirectory/(.+\.php)$ {
....
}

这里两个位置块都包含确切的数据

我该如何修改

location ~ \.php$ {

这样它甚至可以用于子目录

我认为应该在这里使用正则表达式?谁能指导我

问候

4

1 回答 1

0

为避免位置块中的 nginx 重复,请使用 nginx 包含或使用嵌套位置块 - 嵌套位置块示例如下...

    location / {
        proxy_pass http://mywebfeservers;
        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;

        proxy_set_header Host $http_host;
        proxy_set_header X-Request-ID $uuid;
        proxy_set_header Via $via;

        location /aaa {
            # proxy_pass is not inherited, unsure about proxy_http_version
            proxy_pass http://mywebfeservers;
            proxy_http_version 1.1;
            # Prevent caching
            if_modified_since off;
        }
    }

这里所有位置都设置了这些不同的标题。只有 /aaa 位置可以防止缓存,但是它仍然使用相同的标头而不重复配置。可悲的是,您必须重复代理传递,因为继承不适用于代理传递指令(原因我不知道)。

于 2015-07-24T10:56:02.990 回答