Hejka, mam stara aplikacje ktora wysyla 20 AJAXow na raz. 13 z nich przechodzi ok, 7 zas, zawsze te same, te 7 ostatnich, serwer gubi ich GET - wszystkie parametry ktore powinny byc w $_GET sa zgubione.
Czyli request dochodzi, ale bez parametrow przeslanych w URL. Wszystkie 20 requestow maja te same parametry, roznia sie tylko jedna wartoscia. Kontroler wszystko dziala, tylko ze te nieszczesne $_GET jest puste.
Idzie jakos w NGINX zwiekszych limit requestow ktore moze obsluzyc bez gubienia zawartosci?
Wyślij na pw adres strony, chętnie zobaczę to na żywo
Niestety strona tylko dla klientow firmy, nie moge ot tak dac ci loginu tam
Dostajesz jakiegoś erorra? Możesz luknąć na burst + nodelay - https://nginx.org/en/docs/http/ngx_http_limit_req_module.html
Chociaż w domyśle wydaje mi się że nginx powinien puszczać te requesty, bo nie jest to jakaś zmasowana liczba jednak.
Nie wiem czy ktoś z front-endu to potwierdzi, ale swojego czasu mieliśmy podobny problem w dawnej firmie.
Wtedy padła odpowiedź (od chłopaków z frontu właśnie), że to przeglądarka blokuje większą ilość Requestów w danym odcinku czasu. Skąd liczba 13, to nie wiem, ale na każdej przeglądarce tak było z tego co pamiętam.
nospor, czy to ten sam problem?
https://serverfault.com/questions/951012/nginx-php-fpm-drop-ajax-requests-intermittently-how-could-one-pinpoint-the-ca
@ohm to juz patrzylem wczesniej, nie pomoglo
@Salvation w tym sek, ze requesty dochodza do serwera, kontroler je normalnie przyjmuje i zwraca odpowiedz. Problem w tym, ze GET w tych requestach jest totalnie pusty, przez co nie ma np. ID mapy a przez co kontroler zwraca poprostu blad, bo nie moze zaladowac danych mapy bez ID.
@trueblue wyglada podobnie. Wszakze u mnie payload zawsze jest pusty bo wszystkie parametry sa w url, ale podejrzewam ze mozna to podpiac pod payload
A patrzyłeś czy na pewno różnica jest tylko w wartości jednego parametru? Może błąd w budowie query string, może raz http, a innym razem https... Czy requesty nie są przekierowywane na inny URL?
A co access/error logi mówią na ten temat? W sensie bajtowo czy też są puste wg logów?
@trueblue nie,request idzie dokladnym z takim samym formatem zawsze. jest on wysylany w petli i tylko koncowka jednego parametru sie zmienia. Gdy requesty, ktore nie dochodza w petli, wysle pojedynczo, to wszystko jest ok.
w logach jedyna roznica jest taka, w sumie dosc dziwna, ze te requesty ktore przechodza wygladaja tak:
GET URL?service=WFS&version=1.0.0&outputFormat=JSON&request=GetFeature&mapID=30995&featureID=itv_regions.9?service=WFS&version=1.0.0&outputFormat=JSON&request=GetFeature&mapID=30995&featureID=itv_regions.9
a te ktore maja puste GET wygladaja tak
GET URL?service=WFS&version=1.0.0&outputFormat=JSON&request=GetFeature&mapID=30995&featureID=itv_regions.12
Jak widzicie w tych requeastach ktore przechodza, jest zduplikowana zawartosc query string :/
Oczywiscie AJAX wysyla wszystko bez duplikacji
W Google pod frazą "nginx duplicated query string" jest sporo info. Może coś będzie przydatne.
Dziwna sprawa, kwestia jeszcze tego czy w konfiguracji nginxa jest jakis rewrite lub modyfikowanie request_uri? Jeśli nic takiego nie ma, to teoretycznie nginx powinien requesta puszczac dalej.
sek w tym ze te zduplikowane query string dziala a to nie zduplikowane nie Wiec generalnie nie chcialbym duplikacji wywalac
No nic, generalnie wyglada ze serwer nie radzi sobie z x requestami wyslanymi jednoczesnie. Chyba nie pozostaje mi nic innego jak wgryzc sie w ten stary js,znalezc miejsce gdzie to sie odbywa i porobic jakies opoznienia
edit: dobra, znalazlem. Moj ostatni post spowodowal ze zajrzalem jeszcze raz do konfiguracji nginx, w piatek powierzylem to zadanie dla szefa, ale widac to byl blad
Mialem cos takiego
limit_req zone=ip burst=12 nodelay;
zmienilem na
limit_req zone=ip burst=21 nodelay;
I dziala jak ta lala. Nic dziwnego ze wczesniej tylko 13 requestow przechodzilo
Czyli teraz możesz chyba zmienić konfigurację, aby nie duplikowało query string.
Dostalem maila od szefa ze niby poprawil te duplikacje w piatek wieczorem. A mi sie nie chce juz tego teraz sprawdzac, a szef ma wolne dzisiaj, a juz placza ze inna robota stoi i doczekac sie na mnie nie moze
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)