nginx 오류 accept () failed (24: Too many open files) 분석 해결
자세 한 오류 코드 는 다음 과 같 습 니 다.
2011/05/01 23:00:49 [alert] 7387#0: *6259768 socket() failed (24: Too many open files) while connecting to upstream
접근 이 많 을 때 시스템 이 프로 세 스 의 최대 파일 열기 수 에 대한 제한 (ulimit - n 기본 1024) 이 있 고, nginx 는 단일 프로 세 스 다 중 스 레 드 가 병행 하 는 서비스 이기 때문에 접근 이 많 을 때 연결 수가 1024 를 초과 하면 시스템 에 의 해 연결 이 제 한 됩 니 다.
해결:
vim /etc/nginx/nginx.conf
user www www;
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
error_log /www/log/nginx_error.log crit;
pid /usr/local/nginx/nginx.pid;
service nginx reload
ulimit 파일 개수 제한 추가:
echo "ulimit -HSn 65536" >> /etc/rc.local
echo "ulimit -HSn 65536" >> /root/.bash_profile
ulimit -HSn 65535
ulimit -n
(복잡 한 커 널 프로필 수정 작업 을 대체 할 수 있 습 니 다)
첫 번 째 단 계 는 / etc / security / limits. conf 파일 을 수정 하고 다음 줄 과 같이 파일 에 추가 합 니 다.
speng soft nofile 10240
speng hard nofile 10240
그 중에서 speng 은 어떤 사용자 의 열 린 파일 수 제한 을 수정 할 지 지정 하 였 으 며, '*' 번 호 를 사용 하여 모든 사용자 의 제한 을 수정 할 수 있 습 니 다.
소프트 나 하 드 는 소프트 제한 을 수정 할 지, 하 드 제한 을 수정 할 지 지정 합 니 다.10240 은 수정 하고 자 하 는 새로운 제한 값 을 지정 합 니 다. 즉, 최대 파일 수 를 엽 니 다. (소프트 제한 값 이 하 드 제한 보다 작 거나 같 아야 함 을 주의 하 십시오.)수정 후 파일 을 저장 합 니 다.
두 번 째 단 계 는 / etc / pam. d / login 파일 을 수정 하고 다음 줄 과 같이 파일 에 추가 합 니 다.
session required /lib/security/pam_limits. so 이것 은 Linux 가 사용자 가 시스템 로그 인 을 마 친 후에 pam 를 호출 해 야 한 다 는 것 을 알려 주 는 것 입 니 다.limits. so 모듈 은 시스템 이 사용자 가 사용 할 수 있 는 각종 자원 수량 에 대한 최대 제한 (사용자 가 열 수 있 는 최대 파일 수 제한 포함) 을 설정 합 니 다. pamlimits. so 모듈 은 / etc / security / limits. conf 파일 에서 설정 을 읽 어 제한 값 을 설정 합 니 다.수정 후 이 파일 을 저장 합 니 다.
세 번 째 단 계 는 Linux 시스템 급 의 최대 파일 수 제한 을 보고 다음 명령 을 사용 합 니 다.
[speng@as4 ~]$ cat /proc/sys/fs/file-max
12158
이것 은 이 리 눅 스 시스템 이 최대 12158 개의 파일 을 동시에 열 수 있 음 을 나타 낸다. 이것 은 리 눅 스 시스템 의 하 드 제한 이 고 모든 사용자 급 의 열 림 파일 수 제한 이 이 수 치 를 초과 해 서 는 안 된다 는 것 을 나타 낸다.일반적으로 이 시스템 의 하 드 제한 은 리 눅 스 시스템 이 시작 할 때 시스템 하드웨어 자원 상황 에 따라 계 산 된 가장 좋 은 동시에 파일 수 제한 을 여 는 것 입 니 다. 특별한 수요 가 없 으 면 이 제한 을 수정 해 서 는 안 됩 니 다. 사용자 급 에 파일 수 제한 설정 이 이 제한 을 초과 하지 않 는 한.
이 하 드 제한 을 수정 하 는 방법 은 / etc / rc. local 스 크 립 트 를 수정 하 는 것 입 니 다. 스 크 립 트 에 다음 줄 과 같이 추가 합 니 다.
echo 22158 > /proc/sys/fs/file-max
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.