내 가 만난 Nginx + uwsgi 의 500 오류 해결 기록

2588 단어 nginx500uwsgi
나 도 무엇 을 했 는 지 모 르 겠 지만 아무것도 하지 않 은 것 같 습 니 다. python 프로그램 을 바 꾸 었 습 니 다. 그리고 서버 에서 mongodb 의 데이터 베 이 스 를 수 동 으로 삭제 한 후에 다음 과 같은 문제 가 발생 했 습 니 다.
먼저 클 라 이언 트 에 500 오류 가 발생 한 것 을 발견 한 다음 웹 페이지 에서 uWSGI Error 를 엽 니 다. Python application not found 오류, 마지막 으로 서버 기록 을 보 니 readv () failed (104: Connection reset by peer) while reading upstream 이 많이 발견 되 었 습 니 다.아마도 내 가 수 동 으로 데이터 베 이 스 를 삭제 해서 서버 가 갑자기 붕괴 되 어 발생 한 오류 일 것 이다.앞 으로 는 조 심히 움 직 여야 할 것 같 습 니 다.다른 프로그램 에 영향 을 주지 않도록 각 서 비 스 를 닫 고 삭제 하 는 것 이 좋 습 니 다.
어떻게 해 결 했 지?이 게시 물의 설명 에 따라 추 가 된 인자:http://www.vimer.cn/2012/04/%E6%9C%80%E8%BF%91%E7%9A%84%E4%B8%80%E4%BA%9B%E6%8A%80%E6%9C%AF%E6%95%B4%E7%90%86%EF%BC%8820120405%EF%BC%89.html
그러나 -- pep 333 - input 알림 '/ usr / bin / uwsgi: unrecognized option' - pep 333 - input '을 추가 하면 지 워 집 니 다. 서버 에서 직접 service server restart 는 효과 가 없 는 것 같 습 니 다. 다시 시작 해 야 합 니 다.
드디어 돌 아 왔 어, 닦 아, 깜짝 이 야.
발췌 부분 은 다음 과 같다.
uwsgi 신문 readv () failed
uwsgi + nginx 로 구 축 된 server 는 post 로 요청 할 때 데이터 시간 이 초과 되 는 것 을 발견 합 니 다.uwsgi 의 error. log 를 찾 아 봤 습 니 다.
1
9825#0: *745262 readv() failed (104: Connection reset by peer) while reading upstream, client: 121.14.96.125

나중에 인터넷 에서 문 서 를 찾 아 봤 는데http://comments.gmane.org/gmane.comp.python.wsgi.uwsgi.general/1021
그 해석 에 따 르 면 해결 방안 은 두 가지 가 있다. uwsgi 실행 매개 변수 에 증가:
1
2
--pep333-input
--post-buffering 4096

해 보 았 습 니 다. 두 번 째 만 유효 하기 때문에 구 글 은 명령 의 구체 적 인 의 미 를 가지 고 있 습 니 다.
post - buffering 은 http body 버퍼 를 엽 니 다. HTTP body 의 크기 가 지정 한 제한 을 초과 하면 디스크 에 저장 합 니 다.
참조 링크:http://simple-is-better.com/news/301
OK, 그렇지 ~
uwsgi 설정 도 붙 여 주세요. (http://zhiwei.li/text/2011/05/uwsgi%E9%85%8D%E7%BD%AE/)
uWSGI 설정
2011-05-30
post - buffering 은 http body 버퍼 를 엽 니 다. HTTP body 의 크기 가 지정 한 제한 을 초과 하면 디스크 에 저장 합 니 다.
ini 설정 [uwsgi] post - buffering = 8192
명령 행 설정 - post - buffering 8192
post - buffering - buffsize 가 post 버퍼 에 설 치 된 내부 버퍼 크기 (socket 흐름 을 읽 기 위 한 chunk 크기 할당)
post - buffering - buffsize 65536 은 64K 의 메모 리 를 socket recv () 함수 의 버퍼 로 할당 합 니 다. 128 K 의 body 에 대해 서 는 두 개의 순환 / 두 번 의 시스템 호출 이 필요 합 니 다.
비동기 모드
10s 시간 동안 활동 하지 않 으 면 연결 을 닫 습 니 다 – socket - timeout 10 (기본 값 은 4s)
buffer - size 는 uwsgi 패키지 가 준비 한 내부 버퍼 크기 를 분석 하기 위해 기본적으로 4K – buffer - size 32768 입 니 다.
- s 유 닉 스 socket 경로 나 tcp 의 주소 와 포트 번호 - p worker 프로 세 스 수량 - d daemonize l 지정

좋은 웹페이지 즐겨찾기