Nano Hash - криптовалюты, майнинг, программирование

Пользовательская страница ошибки Nginx 413

У меня есть приложение rails на единороге и nginx перед ним.

# nginx.conf
upstream backend {
    server unix:/home/deployer/apps/example.ru/shared/tmp/sockets/unicorn.sock.0  fail_timeout=0;
    server unix:/home/deployer/apps/example.ru/shared/tmp/sockets/unicorn.sock.1  fail_timeout=0;
}

log_format default_log '$host $remote_addr [$time_local] "$request" $status $request_length "$http_referer" "$http_user_agent" $request_time';

server {
    listen 80;
    server_name example.ru www.example.ru dev.example.ru;
    access_log /var/log/nginx/example.ru-access.log default_log;

    # recursive_error_pages on;

    location ~ ^/assets/ {
        root /home/deployer/apps/example.ru/current/public;
        gzip_static on;
        expires 1y;
        add_header Cache-Control public;
        add_header ETag "";
        break;
    }

    location / {
        auth_basic "You shall not pass!";
        auth_basic_user_file /home/deployer/.htsandbox;

        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
        proxy_pass http://backend;
        proxy_redirect off;
    }

    # Error pages
    error_page 413 /413;

    if (-f /home/deployer/apps/example.ru/shared/public/system/maintenance.html) {
      return 503;
    }

    error_page 503 @maintenance;
    location @maintenance {
      if (-f $request_filename) {
        break;
      }
      root /home/deployer/apps/example.ru/shared/public/system;
      rewrite ^(.*)$ /maintenance.html break;
    }

    error_page 502 @bad_gateway;
    location @bad_gateway {
      if (-f $request_filename) {
        break;
      }
      root /home/deployer/apps/example.ru/shared/public/system;
      rewrite ^(.*)$ /bad_gateway.html break;
    }

}

Когда nginx возникает ошибка 413, я хочу передать ее на страницу ошибок единорога /413. Но есть страница с ошибкой 502 Bad Gateway nginx.

#log
2013/12/12 12:56:10 [error] 16853#0: *55 client intended to send too large body: 4099547 bytes, client: 128.72.7.207, server: example.ru, request: "POST /users/tester/avatar HTTP/1.1", host: "dev.example.ru", referrer: "http://dev.example.ru/users/tester/avatar"
2013/12/12 12:56:41 [error] 16853#0: *55 upstream prematurely closed connection while reading response header from upstream, client: 128.72.7.207, server: example.ru, request: "POST /users/tester/avatar HTTP/1.1", upstream: "http://unix:/home/deployer/apps/example.ru/shared/tmp/sockets/unicorn.sock.0:/413", host: "dev.example.ru", referrer: "http://dev.example.ru/users/tester/avatar"
2013/12/12 12:57:12 [error] 16853#0: *55 upstream prematurely closed connection while reading response header from upstream, client: 128.72.7.207, server: example.ru, request: "POST /users/tester/avatar HTTP/1.1", upstream: "http://unix:/home/deployer/apps/example.ru/shared/tmp/sockets/unicorn.sock.1:/413", host: "dev.example.ru", referrer: "http://dev.example.ru/users/tester/avatar"
12.12.2013

  • У вас когда-нибудь это происходило? Я также не могу заставить nginx показывать страницы ошибок для 50-кратных ошибок от рельсов. Похоже, что proxy_intercept_errors - это путь, хотя он тоже не работает. 26.10.2014

Ответы:


1

Вероятно, nginx уже закрыл соединение, когда unicorn пытается загрузить страницу с ошибкой

Подробнее

12.12.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..