WHEREIS

아래 사이트에서 nginx + ajp 를 사용하여 서비스하는 서버에서

https://github.com/yaoweibin/nginx_ajp_module#ajp_header_packet_buffer_size

 

header 길이가 특정 크기 만큼 증가하는 경우

405 에러가 발생하였다.

 

405는 메서드 에러로

지원하지 않는 메서드를 호출할 경우에 발생하는데

이미 쓰고있는 post 에서 에러가 발생였다

 

<html> 
<head><title>405 Not Allowed</title></head> 
<body bgcolor="white"> 
<center><h1>405 Not Allowed</h1></center> 
<hr><center>nginx</center> 
</body>

nginx 에러로그를 보면 다음과 같은 에러가 찍혀 있어서, 메소드 문제는 아니라고 판단하였다.

ajp_marshal_into_msgb: Error appending the header value

따라서, 헤더 크기와 관련해서 찾아보 던 중

 

보통은 아래 값으로 헤더 사이즈를 조정하라고 하는데, 이미 32k 로 적용 중이었으나

 large_client_header_buffers

 

AJP 를 사용하는 환경에서는, 다음과 같이 별도 옵션이 필요하였다.

 

ajp_header_packet_buffer_size 32k;

하지만, 위 설정만으로는 아래와 같은 에러가 발생하게 된다

curl: (18) transfer closed with outstanding read data remaining

 

그래서 다음과 같이 tomcat 에도 추가로 설정이 필요하다.

<Connector 
.....

protocol="AJP/1.3"
.....
packetSize="32786"

/>

 

기본 값으로 ajp 및 tomcat 에서 8k 까지만 가능하고, 양쪽 모두 값을 늘려줘야 정상적으로 호출이 가능하다.

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading