Ի՞նչ անել, եթե nginx-ով աշխատելիս տեղի ունենա սխալ, երբ անցնում է 1024 միացում։
sobes.tech AI
Պատասխան AI-ից
Սա ցույց է տալիս բաց ֆայլերի դիսկրիպտորների քանակի սահմանափակումը:
Որոշումներ:
-
Ավելացնել
worker_connectionsNginx կոնֆիգուրացիայում:// Մեծացնել մեկ worker-ների համար հնարավոր կապերի քանակը events { worker_connections 4096; // կամ ավելի, կախված պահանջներից և ռեսուրսներից } -
Ավելացնել բաց ֆայլերի սահմանափակումը օպերացիոն համակարգի մակարդակով:
- Ընթացիկ սեսիայի համար:
# Ժամանակավոր ավելացնել բաց ֆայլերի սահմանափակումը ulimit -n 65536 - Ոլորտային համակարգի համար (հաստատված):
Խմբագրել
/etc/security/limits.confֆայլը։ Ավելացնել տողեր.(Փոխարինել# Օգտագործողի սահմանափակումներ nginx soft nofile 65536 nginx hard nofile 65536 # Այլընտրանք՝ բոլոր օգտվողների համար # * soft nofile 65536 # * hard nofile 65536nginx-ին օգտագործողի անունով, որը գործարկում է Nginx-ը, եթե այլ է): Պետք է վերաբեռնել համակարգը կամ կրկին մուտք գործել՝ փոփոխությունները կիրառելու համար, կամ կատարելsysctl -p։
- Ընթացիկ սեսիայի համար:
-
Գլոբալ ядրային կարգավորումների ստուգում: Համոզվեք, որ
fs.file-maxարժեքը բավական բարձր է:# Ստուգել ընթացիկ արժեքը cat /proc/sys/fs/file-max # Նոր արժեք սահմանել ժամանակավոր # sudo sysctl -w fs.file-max=100000 # Նոր արժեք սահմանել մշտապես՝ խմբագրելով `/etc/sysctl.conf` # Ավելացնել տող՝ fs.file-max = 100000 # Կիրառել փոփոխությունները # sudo sysctl -p -
Համոզվեք, որ Nginx օգտվողը ունի բավարար իրավունք բացելու այդքան ֆայլեր: Ստուգել, թե ինչ օգտվողով է աշխատում Nginx-ը և ինչ սահմանափակումներ կան այդ օգտվողի համար։ Սա կապված է երկրորդ կետի հետ:
-
Նորից սկսել Nginx-ը: Փոփոխություններ կատարելուց հետո՝ անհրաժեշտ է վերաբեռնել Nginx-ը:
# Nginx վերաբեռնել sudo systemctl reload nginx # Եթե դա չօգնի # sudo systemctl restart nginx
Առաջնահերթությունը լուծման մեջ՝
- Ստուգել և ավելացնել
worker_connections - Ստուգել և ավելացնել ֆայլային սահմանափակումները Nginx օգտվողի համար
- Ստուգել և ավելացնել
fs.file-maxգլոբալ սահմանափակումը - Վերաբեռնել Nginx-ը
Կարևոր է հիշել, որ սահմանափակումների ավելացումը պետք է հիմնավորված լինի և համապատասխան լինի սերվերի ռեսուրսներին (հիշողություն, CPU): Շատ բարձր արժեքները կարող են հանգեցնել համակարգի անկայունության: