Ingress-nginx-套接字挂断,connResetException?

如何解决Ingress-nginx-套接字挂断,connResetException?

我的系统:使用microk8s kubectl的Ubuntu

我正在上在线课程,遇到了找不到解决方案的问题。我无法在应用程序内部访问以下URL

http://ingress-nginx-controller.ingress-nginx.svc.cluster.local

我的网络浏览器出现以下错误

"page": "/","query": {},"buildId": "development","isFallback": false,"err": {"name": "Error","message": "socket hang up","stack": "Error: socket hang up at connResetException (internal/errors.js:613:14) at Socket.socketOnEnd (_http_client.js:493:23) at Socket.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1226:12) at processTicksAndRejections (internal/process/task_queues.js:80:21)"},"gip": true

然后在节点上得到以下转储。

[client] Error: socket hang up
[client]     at connResetException (internal/errors.js:613:14)
[client]     at Socket.socketOnEnd (_http_client.js:493:23)
[client]     at Socket.emit (events.js:326:22)
[client]     at endReadableNT (_stream_readable.js:1226:12)
[client]     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
[client]   code: 'ECONNRESET',[client]   config: {
[client]     url: 'http://ingress-nginx-controller.ingress-nginx.svc.cluster.local/api/users/currentuser',[client]     method: 'get',[client]     headers: {
[client]       Accept: 'application/json,text/plain,*/*',[client]       Host: 'tickets.dev',[client]       'User-Agent': 'axios/0.19.2'
[client]     },[client]     transformRequest: [ [Function: transformRequest] ],[client]     transformResponse: [ [Function: transformResponse] ],[client]     timeout: 0,[client]     adapter: [Function: httpAdapter],[client]     xsrfCookieName: 'XSRF-TOKEN',[client]     xsrfHeaderName: 'X-XSRF-TOKEN',[client]     maxContentLength: -1,[client]     validateStatus: [Function: validateStatus],[client]     data: undefined
[client]   },[client]   request: <ref *1> Writable {
[client]     _writableState: WritableState {
[client]       objectMode: false,[client]       highWaterMark: 16384,[client]       finalCalled: false,[client]       needDrain: false,[client]       ending: false,[client]       ended: false,[client]       finished: false,[client]       destroyed: false,[client]       decodeStrings: true,[client]       defaultEncoding: 'utf8',[client]       length: 0,[client]       writing: false,[client]       corked: 0,[client]       sync: true,[client]       bufferProcessing: false,[client]       onwrite: [Function: bound onwrite],[client]       writecb: null,[client]       writelen: 0,[client]       afterWriteTickInfo: null,[client]       buffered: [],[client]       bufferedIndex: 0,[client]       allBuffers: true,[client]       allNoop: true,[client]       pendingcb: 0,[client]       prefinished: false,[client]       errorEmitted: false,[client]       emitClose: true,[client]       autoDestroy: true,[client]       errored: false,[client]       closed: false
[client]     },[client]     _events: [Object: null prototype] {
[client]       response: [Function: handleResponse],[client]       error: [Function: handleRequestError]
[client]     },[client]     _eventsCount: 2,[client]     _maxListeners: undefined,[client]     _options: {
[client]       protocol: 'http:',[client]       maxRedirects: 21,[client]       maxBodyLength: 10485760,[client]       path: '/api/users/currentuser',[client]       method: 'GET',[client]       headers: [Object],[client]       agent: undefined,[client]       agents: [Object],[client]       auth: undefined,[client]       hostname: 'ingress-nginx-controller.ingress-nginx.svc.cluster.local',[client]       port: null,[client]       nativeProtocols: [Object],[client]       pathname: '/api/users/currentuser'
[client]     },[client]     _redirectCount: 0,[client]     _redirects: [],[client]     _requestBodyLength: 0,[client]     _requestBodyBuffers: [],[client]     _onNativeResponse: [Function (anonymous)],[client]     _currentRequest: ClientRequest {
[client]       _events: [Object: null prototype],[client]       _eventsCount: 6,[client]       _maxListeners: undefined,[client]       outputData: [],[client]       outputSize: 0,[client]       writable: true,[client]       _last: true,[client]       chunkedEncoding: false,[client]       shouldKeepAlive: false,[client]       useChunkedEncodingByDefault: false,[client]       sendDate: false,[client]       _removedConnection: false,[client]       _removedContLen: false,[client]       _removedTE: false,[client]       _contentLength: 0,[client]       _hasBody: true,[client]       _trailer: '',[client]       finished: true,[client]       _headerSent: true,[client]       socket: [Socket],[client]       _header: 'GET /api/users/currentuser HTTP/1.1\r\n' +
[client]         'Accept: application/json,*/*\r\n' +
[client]         'Host: tickets.dev\r\n' +
[client]         'User-Agent: axios/0.19.2\r\n' +
[client]         'Connection: close\r\n' +
[client]         '\r\n',[client]       _onPendingData: [Function: noopPendingOutput],[client]       agent: [Agent],[client]       socketPath: undefined,[client]       maxHeaderSize: undefined,[client]       insecureHTTPParser: undefined,[client]       _ended: false,[client]       res: null,[client]       aborted: false,[client]       timeoutCb: null,[client]       upgradeOrConnect: false,[client]       parser: null,[client]       maxHeadersCount: null,[client]       reusedSocket: false,[client]       host: 'ingress-nginx-controller.ingress-nginx.svc.cluster.local',[client]       protocol: 'http:',[client]       _redirectable: [Circular *1],[client]       [Symbol(kCapture)]: false,[client]       [Symbol(kNeedDrain)]: false,[client]       [Symbol(corked)]: 0,[client]       [Symbol(kOutHeaders)]: [Object: null prototype]
[client]     },[client]     _currentUrl: 'http://ingress-nginx-controller.ingress-nginx.svc.cluster.local/api/users/currentuser',[client]     [Symbol(kCapture)]: false
[client]   },[client]   response: undefined,[client]   isAxiosError: true,[client]   toJSON: [Function (anonymous)]
[client] }

我的ingress-nginx服务

NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.152.183.138   <pending>     80:32160/TCP,443:30735/TCP   32d
ingress-nginx-controller-admission   ClusterIP      10.152.183.198   <none>        443/TCP                      32d

项目源代码

https://gitlab.com/emendoza1986/ticketingapp_microservicecourse

这是称为链接https://gitlab.com/emendoza1986/ticketingapp_microservicecourse/-/blob/master/client/api/build-client.js的源页面http://ingress-nginx-controller.ingress-nginx.svc.cluster.local,作为一个临时*补丁,我直接路由到需要http:// auth-srv:3000才能继续的服务课程。

解决方法

Error socket hang up错误总是表示服务器由于各种原因关闭了连接(无法及时处理请求,或在处理请求时遇到一些错误等)。

检查您使用的库是否没有像pm.sendRequest()那样异步发送请求。

尝试设置Connection: keep-alive标头。 在服务器端,通过将keepAliveTimeout设置为0来禁用它。 另一个解决方案是关闭小于keepAliveTimeout值的空闲套接字(默认情况下为5秒)。默认的http代理不支持这种功能(timeout设置不支持此功能)。因此,请使用agentkeepalive lib

const HttpsAgent = require('agentkeepalive').HttpsAgent;

const agent = new HttpsAgent({
    freeSocketTimeout: 5000
});

更多信息:connection-hang-up

如果您使用 require('http') 来使用 https 服务,并且显示的是“ socket hang up ”。

>

尝试将 require('http') 更改为 require('https') ,并且它可以正常工作。

查看更多:socket-hang-up。 有用的博客:solutions-to-socket-hang-up

总的来说,在群集内部内部使用入口服务并不常见。入口资源旨在管理对内部服务的外部访问。

请注意,这也是一个安全问题,因为您要在外部公开auth服务(UI层使用的后端服务)。

您的网络负载平衡器有待处理的External IP

metalK附带MicroK8s,您可以这样启用它:

microk8s enable metallb

然后应将其转换为实际的IP地址。

看看:kubernetes-ingress-nginx-routing-errorhttp-request_processing

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-