Error decode JSON exrate Сұраныс тақырыбы немесе cookie файлы тым үлкен Nginx қатесі
Төлем әдістері Abuse

Сұраныс тақырыбы немесе cookie файлы тым үлкен Nginx қатесі

01.02.2024, 23:37

Nginx жүйесіндегі " request header or cookie too large " қатесі сұрау тақырыптарының немесе cookie файлдарының өлшемі сервер конфигурациясында орнатылған ең үлкен рұқсат етілген өлшемнен асқанда орын алады. Бұл мақалада неліктен бұл орын алғанын егжей-тегжейлі қарастырамыз.

Nginx жүйесінде Сұраныс тақырыбы немесе cookie файлының тым үлкен қатесі нені білдіреді

Қате HTTP/HTTPS сұрау тақырыптары рұқсат етілген шектен үлкен болғанда шығарылады. Мысалы, браузер тым көп cookie файлдарын жібереді немесе веб-серверге жіберілген сұрау тым үлкен.

Сұраныс әдетте екі бөлікке бөлінеді: тақырыптар - жалпы ақпарат және метадеректер орналасқан жерде және сұраудың негізгі бөлігі. Сұраныстың негізгі бөлігі, сондай-ақ тақырыптың өлшемі әртүрлі болуы мүмкін - кіші де, үлкен де және оның өлшемі әдетте ешқандай қиындық тудырмайды. Дегенмен, сұрау тақырыбының ұзындығын шектеу үшін веб-сервер параметрлерінде параметр орнатылған болса, онда бұл қатені алу мүмкіндігі бар.

Оны қалай түзетуге болады?

Мәселені шешудің бірнеше жолы бар

  1. Nginx конфигурациясындағы тақырыптар мен cookie файлдарының максималды өлшемін ұлғайту. Ол үшін nginx.conf конфигурация файлына келесі жолдарды қосу керек.
  2. Браузердің cookie файлдарын тазалаңыз. Егер мәселе тек бір компьютерде немесе құрылғыда болса, браузердегі cookie файлдарын тазалау көмектесуі мүмкін.
  3. Басқа браузерді немесе құрылғыны пайдаланыңыз. Егер мәселе тек бір браузерде немесе құрылғыда болса, басқа браузерді немесе құрылғыны пайдаланып көріңіз.
  4. GET орнына POST сұрауын пайдаланыңыз. Үлкен параметрлері бар GET сұрауын жіберу кезінде мәселе туындаса, GET орнына POST сұрауын пайдаланып көруге болады.
  5. Сұрауды бірнеше кішірекке бөліңіз. Егер сервер конфигурациясын өзгерту мүмкін болмаса, сұрауды ретімен жібере отырып, бірнеше кішірекке бөлуге болады.

Бұл қатені түзету үшін (егер сіз Nginx веб-серверінің әкімшісі болсаңыз) large_client_header_buffers параметрін өзгерту арқылы ең үлкен тақырып өлшемін үлкейтуіңіз керек. Егер сіз осы қате орын алған веб-сайттың қарапайым пайдаланушысы болсаңыз, ресурс әкімшісі қатені түзеткенше күтуіңіз керек.

Nginx веб-серверінен реттеу

4 және 8 (әдепкі) сияқты 2 санды қабылдайтын large_client_header_buffers параметрін реттеу керек. Бірінші сан буферлердің максималды санын көрсететін мән болып табылады, ал екінші сан сұрау тақырыбы оқылатын буфер өлшеміне жауап береді. Екінші параметр килобайтпен көрсетілген.

Бұл жолды Nginx конфигурация файлының конфигурация файлының http бөліміне немесе белгілі бір сайттың сервер бөліміне қосамыз. Nginx жүйесіндегі веб-сайт конфигурациясының файлдары әдетте /etc/nginx/conf.d/ немесе /etc/nginx/sites-available/ ішінде сақталады (Nginx қалай орнатылғанына байланысты – стандартты операциялық жүйе репозитарийлері немесе Nginx репозиторийі арқылы).

Мәнді реттеу үшін үлкен тақырыптарды сақтауға жарамды 8 және 64 сандарын орнатуға болады. Параметр келесідей болады:

 large_client_header_buffers 8 64k;

Конфигурация файлына өзгертулер енгізілгеннен кейін Nginx пәрменін пайдаланып қайта іске қосу керек:

 sudo systemctl reload nginx

Бұл мәселені шешетін әдістер.