在nginx中共享位置块之间的指令

时间:2018-03-07 12:36:15

标签: nginx nginx-location

我有一个nginx位置块,应该委托给uwsgi后端提供http - > https重定向,如下所示:

location  ~ ^/(api/v1) {
    if ($http_x_forwarded_proto != 'https') {
        rewrite ^ https://$host$request_uri? permanent;
    }
     access_log my-access.log;
     error_log my-error.log;
     include uwsgi_params;
     uwsgi_read_timeout 300;
     uwsgi_send_timeout 300;
     uwsgi_param ..;
     uwsgi_param ..;
     etc ...
    }

我想要的是针对特定端点提供https重定向,因此我不得不执行以下操作:

location  = /api/v1/my/more/specific/endpoint {
     access_log my-access.log;
     error_log my-error.log;
     include uwsgi_params;
     uwsgi_read_timeout 300;
     uwsgi_send_timeout 300;
     uwsgi_param ..;
     uwsgi_param ..;
     etc ...
    }

}

nginx是否允许避免上述重复的uwsgi参数定义?

1 个答案:

答案 0 :(得分:1)

2个选项:

  1. 移动具有server上下文的参数,并且必须影响location块的所有位置到server
  2. 使用include分享常用代码以避免复制和放大粘贴
  3.   

    包含另一个文件或与指定掩码匹配的文件   组态。包含的文件应该在语法上正确   指令和块。