请求体被截断~8k

时间:2018-01-15 15:28:52

标签: php docker nginx

我有两个应用程序,一个在专用服务器上部署在云端的Docker中运行 - 另一个 - B - 。两者都是用PHP编写的,并使用nginx服务器。应用B正在使用更大的有效负载进行PUT请求(让我们考虑1M)。问题是在应用程序A中获取PHP的内容被截断为大约8k(确切地说是8209字节)。这会导致json_decode解码请求正文失败,整个请求失败。

我已经搜索并检查了很长时间的配置,但找不到问题。

这是应用A的nginx.conf(在云端的docker中运行):

worker_processes auto;
user www-data;

pid        /var/run/nginx.pid;
error_log  /var/log/nginx/error.log warn;
error_log  /var/log/nginx.error.log notice;
error_log  /var/log/nginx.error.log info;

events {
    worker_connections  1024;
    multi_accept        on;
    use                 epoll;
}


http {
    sendfile  on;
    tcp_nopush  on;
    tcp_nodelay  on;

    keepalive_timeout  0;

    client_header_timeout  60;
    client_body_timeout  60;
    client_body_buffer_size 10m;
    client_max_body_size 100m;

    server_tokens off;

    reset_timedout_connection on;

    send_timeout 60;

    include /etc/nginx/mime.types;

    default_type text/html;
    charset UTF-8;

    large_client_header_buffers 4 16k;

    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;

    # cache informations about file descriptors, frequently accessed files
    # can boost performance, but you need to test those values
    open_file_cache max=65000 inactive=20s;
    open_file_cache_valid 60s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

    log_format  timed '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent $request_time "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  timed;

    upstream backend {
        server 127.0.0.1:9000;
    }

   include conf.d/*;
}

这是我的网站:

server {
    listen 80 default_server;

    root /var/www/appB/public;
    index index.php;

    location = /.well-known/schema-discovery {
        add_header Content-Type application/json;
        return 200 '{}';
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~* \.(gif|jpg|png|js)$ {
        expires 30d;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include /etc/nginx/fastcgi_params;
    }
}

这是www.conf(对于php-fpm):

[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 150
pm.start_servers = 30
pm.min_spare_servers = 10
pm.max_spare_servers = 50
pm.process_idle_timeout = 60s
pm.max_requests = 5000
pm.status_path = /status
ping.path = /ping
slowlog = /var/log/fpm/slow.log
request_slowlog_timeout = 60s
request_terminate_timeout = 300s
catch_workers_output = yes
access.log = /var/log/fpm/access.log
php_flag[display_errors] = off
php_flag[html_errors] = off
php_admin_value[error_log] = /var/log/fpm/php_error.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 1024M
php_admin_value[upload_max_filesize] = 100M
php_admin_value[post_max_size] = 100M

根据日志,nginx和php-fpm都不会抱怨任何事情(日志中没有错误)。

有人知道可能出现的问题吗?

提前多多感谢!

0 个答案:

没有答案