Nginx 30421#0: accept4() failed (24: Too many open files)

1849 단어
오류 메시지:
  30421#0: accept4() failed (24: Too many open files)

1. 조사 결과 에 따 르 면 파일 연결 수가 너무 많다 는 것 을 쉽게 알 수 있 습 니 다. 인터넷 에서 많은 튜 토리 얼 은 문형 수 를 수정 하 라 고 했 지만 제 문형 수 는 6 만 여 명 이 고 저 는 단일 파일 에 만 접근 할 뿐 동시 다발 적 인 문제 가 존재 하지 않 습 니 다.
  [root@izj6c3njvldcpf6rgj4srvz projects]# ulimit -n
  65535

2. 파일 에 접근 할 수 있 게 되 었 으 니 제 nginx 설정 에 문제 가 있 는 것 이 아니 라 기본 설정 으로 다음 과 같 습 니 다.
  server {
    listen       80;

    server_name  www.superlei.cn;

    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    root    /projects;

    location / {
       index  index.php index.htm index.html;
    #   autoindex  off;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /projects;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    location ~ \.php$ {
        proxy_pass   http://127.0.0.1;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #

     #PHP           FastCGI  .   FastCGI    .
    location ~ .php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

이때 제 리 버스 에이전트 가 켜 져 있 는 proxy 를 봤 어 요.pass, 문 제 를 자세히 보면 문제 가 발생 합 니 다. 프로 세 스 가 접근 할 때 역방향 에이전트 의 설정 은 127.0.0.0.1: 80 포트 에 버 려 서 처리 합 니 다. 그러면 순환 이 멈 추 었 습 니 다. 그래서 우리 가 처음에 겪 었 던 문제 가 발생 했 습 니 다. 이 때 는 역방향 처리 인 터 페 이 스 를 다른 것 으로 바 꾸 거나 주석 을 없 애 면 대리 문 제 를 해결 할 수 있 습 니 다.
     # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    location ~ \.php$ {
        proxy_pass   http://127.0.0.1:8084;
    }

좋은 웹페이지 즐겨찾기