Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Serwery WWW _ [nginx] gubi GET

Napisany przez: nospor 21.10.2022, 14:55:06

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?

Napisany przez: aras785 21.10.2022, 16:36:53

Wyślij na pw adres strony, chętnie zobaczę to na żywo biggrin.gif

Napisany przez: nospor 21.10.2022, 16:42:46

Niestety strona tylko dla klientow firmy, nie moge ot tak dac ci loginu tam

Napisany przez: ohm 21.10.2022, 18:00:37

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.

Napisany przez: Salvation 21.10.2022, 21:02:21

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.

Napisany przez: trueblue 21.10.2022, 21:20:16

nospor, czy to ten sam problem?
https://serverfault.com/questions/951012/nginx-php-fpm-drop-ajax-requests-intermittently-how-could-one-pinpoint-the-ca

Napisany przez: nospor 22.10.2022, 08:12:07

@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

Napisany przez: trueblue 22.10.2022, 09:07:55

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?

Napisany przez: ohm 22.10.2022, 09:51:00

A co access/error logi mówią na ten temat? W sensie bajtowo czy też są puste wg logów?

Napisany przez: nospor 24.10.2022, 10:52:57

@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

Napisany przez: trueblue 24.10.2022, 10:59:02

W Google pod frazą "nginx duplicated query string" jest sporo info. Może coś będzie przydatne.

Napisany przez: ohm 24.10.2022, 11:05:30

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.

Napisany przez: nospor 24.10.2022, 11:21:00

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

Napisany przez: trueblue 24.10.2022, 11:24:52

Czyli teraz możesz chyba zmienić konfigurację, aby nie duplikowało query string.

Napisany przez: nospor 24.10.2022, 11:27:56

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)