Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [nginx] gubi GET
Forum PHP.pl > Forum > Serwery WWW
nospor
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?
aras785
Wyślij na pw adres strony, chętnie zobaczę to na żywo biggrin.gif
nospor
Niestety strona tylko dla klientow firmy, nie moge ot tak dac ci loginu tam
ohm
Dostajesz jakiegoś erorra? Możesz luknąć na burst + nodelay - https://nginx.org/en/docs/http/ngx_http_lim...req_module.html
Chociaż w domyśle wydaje mi się że nginx powinien puszczać te requesty, bo nie jest to jakaś zmasowana liczba jednak.
Salvation
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.
trueblue
nospor, czy to ten sam problem?
https://serverfault.com/questions/951012/ng...pinpoint-the-ca
nospor
@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
trueblue
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?
ohm
A co access/error logi mówią na ten temat? W sensie bajtowo czy też są puste wg logów?
nospor
@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
trueblue
W Google pod frazą "nginx duplicated query string" jest sporo info. Może coś będzie przydatne.
ohm
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.
nospor
sek w tym ze te zduplikowane query string dziala a to nie zduplikowane nie wink.gif 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 biggrin.gif

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
trueblue
Czyli teraz możesz chyba zmienić konfigurację, aby nie duplikowało query string.
nospor
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 wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.