openresty nginx 기록 로그

질문 설명:
openresty 의 nginx 를 통 해 url get 방식 으로 매개 변수 요청 을 받 은 후 관련 매개 변수 로 그 를 기록 한 결과 중국어 가 모두 16 진법 으로 바 뀌 었 습 니 다.예 를 들 어 xE6 \ xBC \ x94 \ xE7 \ xA4 \ xBA \ xE7 \ xAB \ x99.
url 이쪽 매개 변 수 는 인 코딩 을 통 해 전송 되 었 고 nginx 설정 에서 url 의 매개 변 수 는 디 코딩 을 거 쳤 습 니 다.
이 방법 을 사용 하면: local str = ngx. unescapeuri(url); ngx.say(ngx.unescape_uri(str)); 페이지 출력 은 중국어 로 디 코딩 성공 을 설명 합 니 다.
이 방법 을 사용 하면: logformat webaccess "$u_a|$u_b"; location /test1 {
set unescape uri $u b "중국";
set_unescape_uri $u_a $arg_pa;
log_subrequest on;
access_log /source/428/web/access.log webaccess;
} access. log 로그 에 $ua|$u_b. 모두 16 진법 으로 바 뀌 었 다.
인터넷 검색 의 해결 방법 은 다음 과 같다.
1. 인 코딩 변경
conf 아래 nginx. conf 편집
server 단락 에 다음 두 줄 을 추가 합 니 다.
default_type 'text/html'; charset utf-8; 그리고 다시 시작 합 니 다.
이 방법 은 쓸모 가 없다.
2. 블 로그 참조https://www.jianshu.com/p/8f8c2b5ca2d1,
전의 방식 을 설정 합 니 다. 이 방법 은 제 가 escape = none 또는 json 을 시도 해 봤 는데 모두 무효 입 니 다. 이 방법 은 nginx 1.11.8 이상 버 전 을 대상 으로 하 는 것 같 습 니 다.
log_format postdata escape=json '$remote_addr | $request_body | $resp_body';

nginx - v 명령 을 통 해 알 수 있 듯 이 제 가 설치 한 nginx 버 전 은 1.9.3 입 니 다. nginx version: openresty / 1.9.3.1 입 니 다.
3. 이 버 전의 nginx 에 대해 다음 과 같은 방법 으로 해결 할 수 있 습 니 다.
nginx. conf 의 기록 로그 의 location 부분 에 다음 줄 을 직접 설정 하면 됩 니 다.    log_escape_non_ascii off;

좋은 웹페이지 즐겨찾기