Error decode JSON exrate
Nginx жүйесіндегі " request header or cookie too large
" қатесі сұрау тақырыптарының немесе cookie файлдарының өлшемі сервер конфигурациясында орнатылған ең үлкен рұқсат етілген өлшемнен асқанда орын алады. Бұл мақалада неліктен бұл орын алғанын егжей-тегжейлі қарастырамыз.
Қате HTTP/HTTPS сұрау тақырыптары рұқсат етілген шектен үлкен болғанда шығарылады. Мысалы, браузер тым көп cookie файлдарын жібереді немесе веб-серверге жіберілген сұрау тым үлкен.
Сұраныс әдетте екі бөлікке бөлінеді: тақырыптар - жалпы ақпарат және метадеректер орналасқан жерде және сұраудың негізгі бөлігі. Сұраныстың негізгі бөлігі, сондай-ақ тақырыптың өлшемі әртүрлі болуы мүмкін - кіші де, үлкен де және оның өлшемі әдетте ешқандай қиындық тудырмайды. Дегенмен, сұрау тақырыбының ұзындығын шектеу үшін веб-сервер параметрлерінде параметр орнатылған болса, онда бұл қатені алу мүмкіндігі бар.
Мәселені шешудің бірнеше жолы бар
nginx.conf
конфигурация файлына келесі жолдарды қосу керек.GET
орнына POST
сұрауын пайдаланыңыз. Үлкен параметрлері бар GET
сұрауын жіберу кезінде мәселе туындаса, GET
орнына POST
сұрауын пайдаланып көруге болады.Бұл қатені түзету үшін (егер сіз Nginx веб-серверінің әкімшісі болсаңыз) large_client_header_buffers
параметрін өзгерту арқылы ең үлкен тақырып өлшемін үлкейтуіңіз керек. Егер сіз осы қате орын алған веб-сайттың қарапайым пайдаланушысы болсаңыз, ресурс әкімшісі қатені түзеткенше күтуіңіз керек.
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
Бұл мәселені шешетін әдістер.