2017-01-31 60 views
5

Wystąpił problem, gdy nasze pliki cookie osiągnęły określony rozmiar (ponad 7 tys.), Gdzie nginx zwraca 400 nieprawidłowych żądań z pustą odpowiedzią, gdy serwer proxy udostępnia nasz tomcat . Nie dzieje się to jednak, gdy nginx obsługuje treść statyczną. Mamy już próbował aktualizacji config nginx, aby zwiększyć rozmiar bufora, więc powinien obsługiwać poszczególne nagłówki do 16k (próbowaliśmy także ustawić ją na poziomie serwera):400 nieprawidłowych żądań na serwerze proxy nginx do tomcat, ale nie na zawartość statyczną

http { 
    # ... 
    client_body_buffer_size  32k; 
    client_header_buffer_size 16k; 
    large_client_header_buffers 4 16k; 
    # ... 
} 

Mamy również podwyższył Tomcat max -http-header-size do 16k. Jeśli zwiększymy rozmiar pliku cookie do ponad 16k, otrzymamy 400 błędnych żądań, ale odpowiedź będzie miała komunikat o błędzie "Zażądaj nagłówka lub Cookie Too Large". Dzieje się coś dziwnego między rozmiarami nagłówków 8k i 16k, których nie możemy zrozumieć.

+0

To nie wydaje się być problemem nginx, ponieważ jest mało prawdopodobne, zwraca puste strony, które zwykle są klasycznym sygnaturą tomcat. – cnst

+1

czy możesz dodać swoje dokładne wersje nginx i tomcat? – Tair

Odpowiedz

1

Nie wydaje się to być problemem nginx, ponieważ jest mało prawdopodobne, aby zwracał puste strony, które zwykle są klasycznym sygnaturą tomcat.

Wydaje się, że utworzenie rozmiaru nagłówka może zależeć na złączu że używasz:

+0

Używamy połączenia HTTP chociaż – cnaut

+0

Czy próbowałeś zmienić 'maxHttpHeaderSize' zgodnie z http://tomcat.apache.org/tomcat-6.0-doc/config/http.html? Nie jestem do końca pewien, dlaczego w pytaniu wspomniano o 'max-http-header-size', może jest to ustawienie w dalszej części twojej aplikacji tomcat. – cnst

+0

Próbowaliśmy obu, ale nadal występują problemy. Dziwnie, trafienie kocurka bezpośrednio nie stanowi problemu. Tylko od nginx do tomcat. – cnaut