폰트를 작게하였는데도 엄청나게 많은 리퀘스트가 던져진 것이 보인다. 이 한명의 고래같은 행동을 한 유저를 위해서 서버의 설정을 바꾸기로 했다.
에러 로그
04-Apr-2018 05:02:11.818 정보 [http-nio-9040-exec-103] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large
at org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:575)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:703)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
프론트 단에서 Tomcat 기본 설정보다 큰 파라미터가 들어오는 바람에 위와 같이 헤더 크기가 너무 크다라는 에러가 발생했다. 이는 생각보다 해결하는 방법이 단순하다. 톰캣일 경우, server.xml에 설정을 하나 바꿔주면 된다.
해결 방법
1 2 3 4 5 6 7 | <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> <!-- A "Connector" using the shared thread pool--> <!-- <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> | cs |
위 톰캣 설정에서 헤더 사이즈를 늘려주면 된다(기본 8192 bytes)
1 2 3 4 5 6 7 | <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxHttpHeaderSize="30000"/> <!-- A "Connector" using the shared thread pool--> <!-- <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> |
maxHttpHeaderSize를 30000 bytes로 늘렸다(각자 맞게 설정)
'Stackoverflow > Server' 카테고리의 다른 글
[Git] SSL certificate problem: unable to get local issuer certificate (0) | 2023.01.16 |
---|---|
Centos Path 설정하기 (0) | 2020.06.15 |