Spring Boot+Nginx部署出现请求头解析异常问题求助
Nginx反向代理Spring Boot 3时的HTTP请求解析错误问题
我们在Nginx服务器后方部署了Spring Boot 3应用,对应的Nginx location配置如下:
location ~ ^/api(/|$) { proxy_pass http://127.0.0.1:8080; # Forward requests to backend server proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-proto https; proxy_set_header X-Forwarded-Prefix /api/; }
在此配置下,Spring Boot日志中随机且持续出现以下请求解析错误:
2024-04-30T21:15:17.874Z INFO 3992 --- [nio-8080-exec-7] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x000xee0x010x000x000xea0x030x03]0x850xe10xe00x080xba~PE0x1bN0xdc0x8f?0x1fw:~C0xc3q0xbb0xb90x88\l0xb00xd50x8d0x9a0xcc= ]. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:407) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:264) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.15.jar:10.1.15] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
搜索相关信息后,多数观点认为该错误是由于HTTPS请求被发送至仅支持HTTP的服务器导致,但我们的配置明确TLS在Nginx端终止,想请教是否有人遇到过该问题并知晓解决方法。
内容的提问来源于stack exchange,提问作者morpheus
相关产品推荐
相关产品推荐

