Request Entity Too Large(HTTP 413, 414 code)
Apache와 Tomcat AJP Protocol을 이용하여 연동하는 경우 Request Entity Too Large 오류가 발생할 때 다음과 같이 조치한다.
1. httpd.conf 파일 추가
LimitRequestLine 65536 LimitRequestBody 0 LimitRequestFieldSize 65536 LimitRequestFields 10000 |
2. works.properties 파일 변경
worker.list=jkstatus,lb_dev worker.template.type=ajp13 worker.template.lbfactor=1 worker.template.socket_timeout=300 worker.template.socket_connect_timeout=5000 worker.template.socket_keepalive=true worker.template.connect_timeout=30000 worker.template.connection_pool_size=128 worker.template.connection_pool_minsize=32 worker.template.connection_pool_timeout=20 ######################################### ## Worker ######################################### worker.dev.reference=worker.template worker.dev.host=10.255.116.84 worker.dev.port=8009 worker.dev.max_packet_size=65536 ######################################### ## Load Balancer ######################################### worker.lb_dev.type=lb worker.lb_dev.balance_workers=dev worker.lb_dev.sticky_session=true worker.jkstatus.type=status #worker.jasper.max_packet_size=65536 |
Tomcat과 연동하는 workerdml max_packet_size를 65536으로 변경한다.
3. Tomcat의 server.xml 파일 수정
#JAVA_OPTS=" ${JAVA_OPTS} -Dorg.apache.coyote.ajp.MAX_PACKET_SIZE=65536"
|
MAX_PAKCET_SIZE를 JVM option에 추가하거나
<Connector URIEncoding="UTF-8" packetSize="65536" acceptCount="10" connectionTimeout="60000" enableLookups="false" maxPostSize="-1" maxThreads="256" tcpNoDelay="true" maxHttpHeaderSize="30000" port="8009" protocol="AJP/1.3" redirectPort="8443" />
|
server.xml 파일에 AJP Connector에 packetSize와 maxHttpHeaderSize를 설정한다.