Как исправить ошибку «client intended to send too large body»

Опубликовано

Иногда при загрузки файлов в WordPress или в другой системе вы можете получить ошибку в логах nginx

2017/10/14 11:09:32 [error] 19504#19504: *126356 client intended to send too large body: 13702749 bytes, client: 146.198.143.124, server: vexell.ru

Исправить вы ее можете, если у вас есть доступ к конфигурации nginx. Для этого вам необходимо открыть фаил конфигурации и добавить пункт  client_max_body_size.Например, это может выглядеть вот так:

server {
        server_name  vexell.ru www.vexell.ru;

        if ($host ~* www\.(.*)) {
         set $host_without_www $1;
         rewrite ^(.*)$ http://$host_without_www$1 permanent;
        }

	ssl    on;
        ssl_certificate         /etc/nginx/ssl/vexell.ru/server.crt;
        ssl_certificate_key     /etc/nginx/ssl/vexell.ru/server.key;

        listen               443 ssl http2;
        keepalive_timeout    70;

        client_max_body_size 50m;
        #... тут идет продолжение конфига 
}

После указания пункт конфигурации задается максимальный размер загружаемого файла. 

client_max_body_size
Задаёт максимально допустимый размер тела запроса клиента, указываемый в поле “Content-Length” заголовка запроса. Если размер больше заданного, то клиенту возвращается ошибка 413 (Request Entity Too Large). Следует иметь в виду, что браузеры не умеют корректно показывать эту ошибку. Установка параметра размер в 0 отключает проверку размера тела запроса клиента.

Ошибка «upstream sent too big header» при установке xdebug в symfony 2

Опубликовано

После установки xdebug и запуске DEV environment в Symfony 2 можно получить ошибку Bad Gateway. В логах nginx можно найти следующую ошибку:

upstream sent too big header while reading response header from upstream

Для ее исправления необходимо увеличить параметры в конфигурации виртуального хоста Nginx.

fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;

В итоге получаем вот такой конфиг:

location ~ ^/(app|app_dev|config)\.php(/|$) {
          fastcgi_buffer_size 32k;
          fastcgi_buffers 4 32k;
          fastcgi_pass    unix:/tmp/site.sock;
          fastcgi_split_path_info ^(.+\.php)(/.*)$;
          include fastcgi_params;
          fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param  HTTPS off;
        }

Установка Nginx на CentOS 5

Опубликовано

Для многих,  думаю, уже знакомо,  для чего данное приложение необходимо. Кто ещё не знаком, Nginx (engine x) — это легковесный веб-сервер работающий на Unix-подобных операционных системах. Nginx позволяет снизить нагрузку на основные сервера генерации динамического контента за счет быстрой отдачи статического контента клиентам. Поэтому веб-сервер Nginx чаще всего используют как Front-End сервер, а Apache – Back-End сервер. Также Nginx позволяет создать разграничение нагрузки, что очень важно для High-load проектов.

Не буду вдаваться в описание этого веб-сервера, о нем можно найти кучу информации в интернете, а приступлю непосредственно к его установке.

Nginx и хост по умолчанию

Опубликовано

Если вам необходимо создать хост по умолчанию в nginx, то есть хост, который будет всегда открываться по умолчанию, то можно воспользоваться следующей конструкцией.

Создадим фаил «000-default-host.conf» со следующим содержанием:

server {
    listen       80 default;

    access_log  /var/log/nginx/000-default-host.access.log;

    location / {
        root   /var/www/default-host/;
        index  index.html index.htm;
    }
}

Благодаря использованию listen 80 default будет происходить обращение по умолчанию к данной конфигурации. Например, если у вас сайт http://example.ru и в DNS указано, что все хосты ссылаются на ваш IP, то при обращении на несуществующий у Вас хост http://bugaga.example.ru, будет показываться указанный хост.

Само собой в директории «/var/www/default-host/» должны лежать файлы и данный фаил конфигурации должен быть подключен к общей конфигурации nginx.

p.s. У меня все прописанных хосты лежат в директории «/etc/nginx/sites-enabled/», а подключение их происходит в файле «/etc/nginx/nginx.conf» добавлением следующей строчки «include /etc/nginx/sites-enabled/*.conf;» в разделе http.