Nginx добавляет данные ответа к содержимому тела почтового запроса из своего буфера?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Nginx добавляет данные ответа к содержимому тела почтового запроса из своего буфера?

Сообщение Anonymous »

В течение нескольких дней я борюсь со странной проблемой в приложении laravel, которое работает в Docker-контейнере в системе ubuntu и использует laravel/ rebing-graphql для обработки ответов на запросы graphql.
Поэтому я использую интерфейс GraphiQL для отправки графа запросы к моему бэкэнд.
Результат, который я получаю по моему запросу, включает не только действительный ответ, но и параметры, которые я отправляю вместе с запросом на публикацию;

Код: Выделить всё

"{\"query\":\"query Users {\\n  users(pagination: {offset: 0, limit: 1}) {\\n    items {\\n      id\\n    }\\n  }\\n}\",\"variables\":null,\"operationName\":\"Users\"}{\"data\":{\"users\":{\"items\":[{\"id\":53}]}}}"
Этот ответ имеет тип контента не application/json, а текст/html.
Похоже на тело запроса на публикацию добавляется к данным ответа моего API. Это приводит к ошибке анализа JSON на моем клиенте. Часть данных API здесь сама по себе кажется допустимой.
Самое странное в этой проблеме то, что она возникает при каждом секундном(!) запросе.
Итак, около 50% моих запросов получают действительный ответ в формате JSON и без какого-либо предваряющего тела запроса на публикацию.
Я пытался проанализировать основную причину этой проблемы и был не удалось найти место в коде, где находятся параметры. отображается как дополнительный вывод.
Вызывает ли конфигурация nginx добавление содержимого тела почтового запроса в начало?
Во время моего дальнейшее расследование, я начал заменять файл index.php внутри общедоступного каталога laravels и создал собственный index.php, который не содержит ничего, кроме выхода("test") ; казнь.
Результат оказался неожиданным. Я по-прежнему добавляю параметры сообщения к выводу при каждом втором запросе:

Код: Выделить всё

"{\"query\":\"query Users {\\n  users(pagination: {offset: 0, limit: 1}) {\\n    items {\\n      id\\n    }\\n  }\\n}\",\"variables\":null,\"operationName\":\"Users\"}test"
Я использую образ докера из nginx:alpine и php:7.4-fpm-alpine.
Контейнер докера открывает порт, который получает прокси от сервера apache2, который работает в моей корневой системе.
Это моя конфигурация nginx по умолчанию:

Код: Выделить всё

server {
listen 80;

server_name my-domain.com;
error_log  /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;

root /var/www/html/public;

index index.php index.html;

location / {
client_max_body_size 100M;

if ($request_method = 'OPTIONS') {
add_header Access-Control-Max-Age 1728000;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE, HEAD";
add_header Content-Length 0;
add_header Content-Type "text/plain; charset=UTF-8";
add_header Access-Control-Allow-Headers "Origin,X-Requested-With,Content-Type,Accept,X-CSRF-Token,X-XSRF-TOKEN,Authorization";
return 204;
}

try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}

location ~ \.php$ {
client_max_body_size 100M;

if ($http_origin ~* "^(blob:)?http(s)?://www.my-domain.com(:[0-9]{2,4})?$") {
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
add_header Access-Control-Allow-Headers "Origin,X-Requested-With,Content-Type,Accept,X-CSRF-Token,X-XSRF-TOKEN,Authorization";
}

try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass epapistagephp:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Есть ли кто-нибудь, кто уже сталкивался с подобным поведением, или у вас есть подсказка, с чего начать дальнейший анализ?
Спасибо! заранее!!
Привет, Жюль

Подробнее здесь: https://stackoverflow.com/questions/649 ... its-buffer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как предотвратить скрытие поля почтового индекса/почтового индекса для некоторых стран в WooCommerce
    Anonymous » » в форуме Php
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • RestAssured Я пропускаю одно поле при извлечении тела ответа из ответа
    Гость » » в форуме JAVA
    0 Ответы
    88 Просмотры
    Последнее сообщение Гость
  • Как получить данные из почтового запроса?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как получить данные из почтового запроса?
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как получить данные из почтового запроса?
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»