后台Broken pipe
服务端日志:
20:41:22.976 [http-nio-9201-exec-5] DEBUG c.r.s.m.T.selectList - [debug,137] - ==> Preparing: SELECT first(bat_dt) bat_dt,machine_no,lat_c,lon_c FROM no_080224689 WHERE bat_dt >= ? and bat_dt <= ? INTERVAL(60s) SLIDING(60s) order by bat_dt asc;
20:41:22.976 [http-nio-9201-exec-5] DEBUG c.r.s.m.T.selectList - [debug,137] - ==> Parameters: 2022-12-28 00:00:00(String), 2022-12-30 23:59:59(String)
20:41:23.087 [http-nio-9201-exec-5] DEBUG c.r.s.m.T.selectList - [debug,137] - <== Total: 4250
20:41:23.098 [http-nio-9201-exec-5] ERROR c.r.c.s.h.GlobalExceptionHandler - [handleException,130] - 请求地址'/trajectory/list',发生系统异常.
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:784)
at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:689)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:388)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:366)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)
at com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBase._serializeAsString(DateTimeSerializerBase.java:226)
at com.fasterxml.jackson.databind.ser.std.DateSerializer.serialize(DateSerializer.java:51)
at com.fasterxml.jackson.databind.ser.std.DateSerializer.serialize(DateSerializer.java:15)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
......
给后台springboot的tomcat配置超时时间
spring:
tomcat:
connection-timeout: 6000ms
max-connection: 30000
故障依旧
利用postman调用接口http://xxxx:9201/trajectory/list
完全ok,数据量比较大,耗时5.8s
如果请求接口https://我的域名/dev-api/system/trajectory/list
Broken pipe又是这个异常
说明问题在于nginx,进入/usr/local/nginx/logs查看error.log日志
2023/01/06 10:31:33 [notice] 1464088#0: signal process started
2023/01/06 10:31:59 [crit] 1464089#0: *354002 mkdir() "/usr/local/nginx/proxy_temp/6/26" failed (13: Permission denied) while reading upstream, client: 58.48.177.106, server: tulipmoa.com, request: "POST /dev-api/system/trajectory/list HTTP/1.1", upstream: "http://[::1]:8080/system/trajectory/list", host: "admin.tulipmoa.com", referrer: "https://xxxx/trajectory"
2023/01/06 10:32:05 [crit] 1464089#0: *354004 mkdir() "/usr/local/nginx/proxy_temp/7/26" failed (13: Permission denied) while reading upstream, client: 58.48.177.106, server: tulipmoa.com, request: "POST /dev-api/system/trajectory/list HTTP/1.1", upstream: "http://127.0.0.1:8080/system/trajectory/list", host: "admin.tulipmoa.com", referrer: "https://xxxx/trajectory"
2023/01/06 10:33:31 [crit] 1464089#0: *354007 mkdir() "/usr/local/nginx/proxy_temp/8/26" failed (13: Permission denied) while reading upstream, client: 58.48.177.106, server: tulipmoa.com, request: "POST /dev-api/system/trajectory/list HTTP/1.1", upstream: "http://[::1]:8080/system/trajectory/list", host: "admin.tulipmoa.com", referrer: "https://xxxx/trajectory"
查看一下/usr/local/nginx/fastcgi_temp/ 权限 ls-ll
更新一下fastcgi_temp、proxy_temp文件夹权限:
chown -R nobody:nobody /usr/local/nginx/fastcgi_temp
chown -R nobody:nobody /usr/local/nginx/proxy_temp
完美解决!