Ningx 에서 흔히 볼 수 있 는 오류 요약

4163 단어
링크
업무 중 에 각종 nginx 오류 가 발생 하여 서 비 스 를 사용 할 수 없 게 되 었 습 니까?설정 파일 의 자세 한 문제 가 발견 되 지 않 아 설정 이 유효 하지 않 습 니까?로그 에 있 는 힌트 를 만 났 습 니 다. 문 제 를 빠르게 찾 을 수 없 습 니까?본 고 는 몇 가지 방법 이나 사고방식 을 제공 하고 여러분 이 각자 의 문 제 를 해결 하 는 데 도움 을 주 기 를 바 랍 니 다. +
debug
일 을 잘 하려 면 먼저 그 그릇 을 이 롭 게 해 야 합 니 다. 테스트 단계 에서 문제 의 원인 을 찾 을 수 없 을 때 error 를 시작 합 니 다.log debug 스위치, 그리고 error로그 의 내용, 당신 은 많은 것 을 얻 을 수 있 습 니 다.
error_log  /path/to/log debug;

Nginx Error 413 Request Entity Too Large
... 때문에
client_max_body_size     1m;

그래서 큰 파일 을 올 리 거나 요청 한 데이터 의 양 이 많은 장면 에서 이 값 을 적당 하 게 조정 해 야 합 니 다.
502 / 504 오류
error_log 는 보통 upstream timed out (110: Connection timed out) 을 표시 합 니 다.
2014/08/14 10:23:15 [error] 19210#0: *104643398 upstream timed out (110: Connection timed out) while reading response header from upstream,

이 층 프 록 시 는 ok 입 니 다. upstream 이 가리 키 는 ip 의 http 서 비 스 를 사용 할 수 있 는 지 확인 하 십시오.http 서 비 스 는 사용 가능 하지만 ip 또는 port 의 제한 이 있 습 니 다. telnet ip port 를 사용 하여 결 과 를 보조 적 으로 봅 니 다.
로그 기록 에서 HTTP 상태 코드 499 오류 발생
묵인 하 다
proxy_ignore_client_abort off,

요청 과정 에서 client 가 자발적으로 연결 을 닫 거나 클 라 이언 트 네트워크 가 끊 어 지면 Nginx 는 499 를 기록 합 니 다. 사용 하면
proxy_ignore_client_abort on 

클 라 이언 트 의 연결 을 주동 적 으로 닫 지 않 기;그러면 클 라 이언 트 가 자발적으로 연결 을 끊 은 후에 Nginx 는 백 엔 드 처리 (또는 시간 초과) 를 기다 리 고 백 엔 드 에서 돌아 온 정 보 를 로그 에 기록 합 니 다.따라서 백 엔 드 가 200 으로 돌아 가면 200 을 기록 합 니 다.백 엔 드 에서 5XX 를 되 돌려 놓 으 면 5XX 를 기록 합 니 다. 시간 초과 (기본 60s, proxy read timeout 설정 가능) 하면 Nginx 는 자발적으로 연결 을 끊 고 504 를 기록 합 니 다.
Nginx 403 error: directory index of [folder] is forbidden
Error_로그
2014/08/21 11:59:26 [error] 4229#0: *38 directory index of "/home/xxxx" is forbidden, client: 127.0.0.1, server: abc.com, request: "HEAD / HTTP/1.1", host: "abc.com"

이 도 메 인 이름 의 첫 페이지 에 접근 할 때 첫 페이지 의 rewrite 가 설정 되 어 있 지 않 기 때문에 nginx 는 기본적으로 디 렉 터 리 에 있 는 index. html 를 찾 습 니 다. 따라서 해결 방법 은 다음 과 같 습 니 다.
a)            ,rewrite ^/*$ /somefile break;
b)        index.html  
c)    autoindex on;                          ,         ,       .

Permission denied
Error_로그
2014/09/03 12:53:49 [error] 22402#0: *11399428976 open()  failed (13: Permission denied), client: 

nginx 기본 사용 자 는 nobody 이기 때문에 (루트 사용 자 를 사용 하지 않 는 것 을 강력 히 권장 합 니 다).파일 권한 은 다음 과 같 습 니 다. - rwxr - x - 1 root 160 Sep 3 12: 44 allphoto. xml Nobody 는 read 권한 이 없 기 때문에 열 수 없습니다. 물론 접근 할 수 없습니다. 644 로 바 꾸 면 됩 니 다. - rw - r - 1 root 160 Sep 3 12: 44 allphoto. xml
rewrite 데 드 사이클
Error_로그
2014/09/10 11:02:04 [error] 17989#0: *6 rewrite or internal redirection cycle while processing "/test.html", client: 127.0.0.1, server: abc.com, request: "HEAD / HTTP/1.1", host: "abc.com"

rewrite 또는 내부 재 설정 순환 을 알려 줍 니 다. 해결 방법: / test. html 에 대응 하 는 설정 을 찾 고 마지막 으로 last 또는 break 를 추가 합 니 다.
proxy_패스 주의 점
proxy_pass” cannot have URI part in location given by regular expression, or inside named location, or inside “if” statement, or inside “limit_except” block … eg:
location ~* \.(jsp|do)${
index index.jsp;
proxy_pass http://localhost:8080/shop_goods;
proxy_set_header X-Real-IP $remote_addr;
}

location 에 정규 표현 식 이 설정 되 어 있 거나 이름 이 location 에 있 거나 if 구문 에 있 거나 limit 에 있 을 때except 블록 중, proxypass URI 부분 이 없 으 면 proxypass http://ip:port형식
nginx 설정 chunked 스위치
때때로 curl – I 로 reponse 의 header 안에 Transfer-Encoding:chunked 라 는 항목 이 있 는데 이것 은 chunked 인 코딩 방식 으로 문 체 를 전송 하 는 것 을 나타 낸다.chunked 인 코딩 은 HTTP / 1.1 RFC 에서 정의 하 는 인 코딩 방식 이다.
chunked                     ,          。              ,          ,       。        ,       ,client              ,     
chunked_transfer_encoding off;
정규 에 대하 여
nginx location / if 의 정규 표현 식 모드 (subpatterns) 와 역방향 참조 (Back references) 예 를 들 어
location ~ ^/somedir/((abc)|(.*))/$ 

그러면 $1 = abc., $2 = abc, $3 =. 그들의 번 호 는 왼쪽 괄호 의 순서 로 결정 된다.

좋은 웹페이지 즐겨찾기