With this configuration, nginx, the site is loaded through time. Once loaded completely, another time it issues

502 bad gateway


nginx

Nginx configuration:

# Определяем пользователя, под которым работает nginx user www-data; # Определяем количество рабочих процессов автоматически # Параметр auto поддерживается только начиная с версий 1.3.8 и 1.2.5. worker_processes auto; # Определяем, куда писать лог ошибок и уровень логирования error_log /var/log/nginx/error.log warn; # Задаём файл, в котором будет храниться номер (PID) основного процесса pid /var/run/nginx.pid; events { # Устанавливает максимальное количество соединений одного рабочего процесса. Следует выбирать значения от 1024 до 4096. # Как правило, число устанавливают в зависимости от числа ядер процессора по принципу n * 1024. Например, 2 ядра дадут worker_connections 2048. worker_connections 1024; # Метод обработки соединений. Наличие того или иного метода определяется платформой. # Как правило, NGINX сам умеет определять оптимальный метод, однако, его можно указать явно. # use epoll - используется в Linux 2.6+ # use kqueue - FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 и Mac OS X use epoll; # Будет принимать максимально возможное количество соединений #multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # Куда писать лог доступа и уровень логирования access_log /var/log/nginx/access.log main; ## # Basic Settings ## # Используется, если количество имен серверов большое #server_names_hash_max_size 1200; #server_names_hash_bucket_size 64; ### Обработка запросов ### # Метод отправки данных sendfile более эффективен, чем стандартный метод read+write sendfile on; # Будет отправлять заголовки и и начало файла в одном пакете tcp_nopush on; tcp_nodelay on; ### Информация о файлах ### # Максимальное количество файлов, информация о которых будет содержаться в кеше open_file_cache max=200000 inactive=20s; # Через какое время информация будет удалена из кеша open_file_cache_valid 30s; # Кеширование информации о тех файлах, которые были использованы хотя бы 2 раза open_file_cache_min_uses 2; # Кеширование информации об отсутствующих файлах open_file_cache_errors on; # Удаляем информацию об nginx в headers server_tokens off; # Будет ждать 30 секунд перед закрытием keepalive соединения keepalive_timeout 30s; ## Максимальное количество keepalive запросов от одного клиента keepalive_requests 100; # Разрешает или запрещает сброс соединений по таймауту reset_timedout_connection on; # Будет ждать 30 секунд тело запроса от клиента, после чего сбросит соединение client_body_timeout 30s; # В этом случае сервер не будет принимать запросы размером более 1Мб client_max_body_size 1m; # Если клиент прекратит чтение ответа, Nginx подождет 30 секунд и сбросит соединение send_timeout 30s; # Proxy # # Задаёт таймаут для установления соединения с проксированным сервером. # Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд. proxy_connect_timeout 30s; # Задаёт таймаут при передаче запроса проксированному серверу. # Таймаут устанавливается не на всю передачу запроса, а только между двумя операциями записи. # Если по истечении этого времени проксируемый сервер не примет новых данных, соединение закрывается. proxy_send_timeout 30s; # Задаёт таймаут при чтении ответа проксированного сервера. # Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. # Если по истечении этого времени проксируемый сервер ничего не передаст, соединение закрывается. proxy_read_timeout 30s; ## # Gzip Settings ## # Включаем сжатие gzip gzip on; # Для IE6 отключить gzip_disable "msie6"; # Добавляет Vary: Accept-Encoding в Headers gzip_vary on; # Cжатие для всех проксированных запросов (для работы NGINX+Apache) gzip_proxied any; # Устанавливает степень сжатия ответа методом gzip. Допустимые значения находятся в диапазоне от 1 до 9 gzip_comp_level 6; # Задаёт число и размер буферов, в которые будет сжиматься ответ gzip_buffers 16 8k; # Устанавливает минимальную HTTP-версию запроса, необходимую для сжатия ответа. Значение по умолчанию gzip_http_version 1.1; # MIME-типы файлов в дополнение к text/html, которые нужно сжимать gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; # Минимальная длина файла, которую нужно сжимать gzip_min_length 10; # Подключаем конфиги конкретных сайтов include /etc/nginx/conf.d/*.conf; include /etc/nginx/vhosts/*/*; ### Далее определяем localhost ### Сюда отправляются запросы, для которых не был найден свой конкретный блок server в /vhosts/ server { server_name localhost; # Тут можно ввести IP сервера disable_symlinks if_not_owner; listen 80 default_server; # Указываем, что это сервер по умолчанию на порту 80 ### Возможно, понадобится чётко указать IP сервера # listen 192.168.1.1:80 default_server; ### Можно сбрасывать соединения с сервером по умолчанию, а не отправлять запросы в бекенд #return 444; include /etc/nginx/vhosts-includes/*.conf; location @fallback { error_log /dev/null crit; proxy_pass http://127.0.0.1:8080; proxy_redirect http://127.0.0.1:8080 /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; access_log off ; } } } 

What to change so that the site loads stably?

  • 2
    Are you sure that the problem is in nginx, but the backend is not buggy? - andreymal
  • Sure. Overwriting nginx loads fine. The second time is already an error. And it is constantly. - Sergey_777
  • one
    The phrases “I rewrite nginx loads fine” I did not understand - andreymal
  • Read what 502 is: ruhighload.com/post/Error+502+bad+gateway+в+Nginx Not looking for the source of the problem. - KAGG Design
  • Theoretically, there may be @KAGGDesign there, an error 502 can generate a whole bunch of different reasons besides those described by reference - andreymal

0