Puncte:1

Sinatra + Thin + Nginx connect() a eșuat (111: Conexiune refuzată) în timpul conectării la amonte

drapel cn

Am o aplicație Sinatra care rulează pe Thin cu Nginx ca proxy invers și primește mult trafic. Utilizatorii mei raportează erori 502 și uitându-mă la jurnalele Nginx, văd multe dintre acestea:

[avertizare] serverul din amonte a fost dezactivat temporar în timpul conectării la amonte
[eroare] connect() a eșuat (111: Conexiune refuzată) în timpul conectării la amonte

Dacă mă uit la jurnalele din aplicația Sinatra, nu văd nicio eroare.

Încep serverul subțire cu următoarele:

--max-conns 15360 --max-persistent-conns 2048 --threaded start

Am setat următoarele pentru Ninx:

worker_proceses auto;
worker_rlimit_nofile 65535;

evenimente {
    conexiuni_muncitor 15360;
}

Fișierul gazdă pentru aplicația Sinatra:

Server {
    server_name my_sinatra_app;

    #o mulțime de roboți încearcă să găsească vulnerabilități în site-urile php
    locație ~ \.php {
        întoarce 404;
    }

    Locație / {
        proxy_pass http://localhost:6903;
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune „upgrade”;
        proxy_set_header Gazdă $gazdă;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_cache_bypass $http_upgrade;

        #creștere tampon
        dimensiunea_buffer_proxy 128k;
        proxy_buffers 4 256k;
        proxy_busy_buffers_size 256k;
    }

    asculta 443 ssl; # gestionat de Certbot
    #...
    Chestii #SSL
}

De ce se întâmplă asta? Prea mult trafic?

Care este soluția? Continui să cresc conexiuni_lucrători și --max-conns pana se opresc erorile?

Ieșirea de htop se pare că serverul poate gestiona mai mult:

htop

Orice perspectivă/sfat?

EDITAȚI | ×

Deși nu văd nicio eroare în jurnalul Sinatra sau starea systemctl ieșire, am observat că serviciul nu rulează niciodată foarte mult timp, așa că se pare că serverul subțire se prăbușește des. Ai idee cum pot depana asta mai departe?

Puncte:0
drapel cn

Deci problema a fost de fapt cu serverul Thin, din anumite motive, acesta a continuat să se prăbușească la fiecare câteva minute cu o eroare C++ și, prin urmare, Nginx ar arunca acele erori în timp ce încerca să se conecteze la Thin și nu reușește (pentru că Thin s-ar bloca/repornește).

Soluția a fost înlocuirea lui Thin cu Puma, după aceea fără probleme.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.