client_body_temp_path - permissions

Konstantin Baryshnikov konstantin на symbi.org
Пт Июн 2 02:47:44 UTC 2017


> 
> On May 31, 2017, at 12:35 AM, S.A.N <nginx-forum на forum.nginx.org> wrote:
> 
> Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на файл
> который должен быть обработан в другом процессе, это нормально и это никак
> нельзя настроить в конфиге Nginx?

Нельзя.

Я по большой нужде обходился вот таким патчем:

diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -386,6 +386,13 @@
       offsetof(ngx_http_core_loc_conf_t, client_body_in_single_buffer),
       NULL },

+    { ngx_string("client_body_file_group_access"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+      ngx_conf_set_flag_slot,
+      NGX_HTTP_LOC_CONF_OFFSET,
+      offsetof(ngx_http_core_loc_conf_t, client_body_file_group_access),
+      NULL },
+
     { ngx_string("sendfile"),
       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
                         |NGX_CONF_FLAG,
@@ -1462,6 +1469,7 @@
     }

     r->request_body_in_single_buf = clcf->client_body_in_single_buffer;
+    r->request_body_file_group_access = clcf->client_body_file_group_access;

     if (r->keepalive) {
         if (clcf->keepalive_timeout == 0) {
@@ -3571,6 +3579,7 @@
     clcf->max_ranges = NGX_CONF_UNSET_UINT;
     clcf->client_body_in_file_only = NGX_CONF_UNSET_UINT;
     clcf->client_body_in_single_buffer = NGX_CONF_UNSET;
+    clcf->client_body_file_group_access = NGX_CONF_UNSET;
     clcf->internal = NGX_CONF_UNSET;
     clcf->sendfile = NGX_CONF_UNSET;
     clcf->sendfile_max_chunk = NGX_CONF_UNSET_SIZE;
@@ -3792,6 +3801,8 @@
                               NGX_HTTP_REQUEST_BODY_FILE_OFF);
     ngx_conf_merge_value(conf->client_body_in_single_buffer,
                               prev->client_body_in_single_buffer, 0);
+    ngx_conf_merge_value(conf->client_body_file_group_access,
+                              prev->client_body_file_group_access, 0);
     ngx_conf_merge_value(conf->internal, prev->internal, 0);
     ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0);
     ngx_conf_merge_size_value(conf->sendfile_max_chunk,
diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h
--- a/src/http/ngx_http_core_module.h
+++ b/src/http/ngx_http_core_module.h
@@ -402,6 +402,7 @@
     ngx_uint_t    server_tokens;           /* server_tokens */
     ngx_flag_t    chunked_transfer_encoding; /* chunked_transfer_encoding */
     ngx_flag_t    etag;                    /* etag */
+    ngx_flag_t    client_body_file_group_access; /* client_body_file_group_access */

 #if (NGX_HTTP_GZIP)
     ngx_flag_t    gzip_vary;               /* gzip_vary */

> 
> Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274538#msg-274538



Подробная информация о списке рассылки nginx-ru