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:
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?