Hello @kevinpollet, thanks for your intervention.
I updated my docker compose with your exemple but i got the same error 500.
My service 2 down and return this object.
My server 1 don't received request, so i think that Traefik cannot redirect this request.
Server listening on port 3002
server_2_1 |
server_2_1 | node:internal/process/promises:288
server_2_1 | triggerUncaughtException(err, true /* fromPromise */);
server_2_1 | ^
server_2_1 | AxiosError: connect ECONNREFUSED 127.0.0.1:80
server_2_1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) {
server_2_1 | port: 80,
server_2_1 | address: '127.0.0.1',
server_2_1 | syscall: 'connect',
server_2_1 | code: 'ECONNREFUSED',
server_2_1 | errno: -111,
server_2_1 | config: {
server_2_1 | transitional: {
server_2_1 | silentJSONParsing: true,
server_2_1 | forcedJSONParsing: true,
server_2_1 | clarifyTimeoutError: false
server_2_1 | },
server_2_1 | adapter: [Function: httpAdapter],
server_2_1 | transformRequest: [ [Function: transformRequest] ],
server_2_1 | transformResponse: [ [Function: transformResponse] ],
server_2_1 | timeout: 0,
server_2_1 | xsrfCookieName: 'XSRF-TOKEN',
server_2_1 | xsrfHeaderName: 'X-XSRF-TOKEN',
server_2_1 | maxContentLength: -1,
server_2_1 | maxBodyLength: -1,
server_2_1 | env: {
server_2_1 | FormData: [Function: FormData] {
server_2_1 | LINE_BREAK: '\r\n',
server_2_1 | DEFAULT_CONTENT_TYPE: 'application/octet-stream'
server_2_1 | }
server_2_1 | },
server_2_1 | validateStatus: [Function: validateStatus],
server_2_1 | headers: {
server_2_1 | Accept: 'application/json, text/plain, */*',
server_2_1 | 'User-Agent': 'axios/0.27.2'
server_2_1 | },
server_2_1 | method: 'get',
server_2_1 | url: 'http://server_1.localhost/server1/users/2',
server_2_1 | data: undefined
server_2_1 | },
server_2_1 | request: <ref *2> Writable {
server_2_1 | _writableState: WritableState {
server_2_1 | objectMode: false,
server_2_1 | highWaterMark: 16384,
server_2_1 | finalCalled: false,
server_2_1 | needDrain: false,
server_2_1 | ending: false,
server_2_1 | ended: false,
server_2_1 | finished: false,
server_2_1 | destroyed: false,
server_2_1 | decodeStrings: true,
server_2_1 | defaultEncoding: 'utf8',
server_2_1 | length: 0,
server_2_1 | writing: false,
server_2_1 | corked: 0,
server_2_1 | sync: true,
server_2_1 | bufferProcessing: false,
server_2_1 | onwrite: [Function: bound onwrite],
server_2_1 | writecb: null,
server_2_1 | writelen: 0,
server_2_1 | afterWriteTickInfo: null,
server_2_1 | buffered: [],
server_2_1 | bufferedIndex: 0,
server_2_1 | allBuffers: true,
server_2_1 | allNoop: true,
server_2_1 | pendingcb: 0,
server_2_1 | constructed: true,
server_2_1 | prefinished: false,
server_2_1 | errorEmitted: false,
server_2_1 | emitClose: true,
server_2_1 | autoDestroy: true,
server_2_1 | errored: null,
server_2_1 | closed: false,
server_2_1 | closeEmitted: false,
server_2_1 | [Symbol(kOnFinished)]: []
server_2_1 | },
server_2_1 | _events: [Object: null prototype] {
server_2_1 | response: [Function: handleResponse],
server_2_1 | error: [Function: handleRequestError],
server_2_1 | socket: [Function: handleRequestSocket]
server_2_1 | },
server_2_1 | _eventsCount: 3,
server_2_1 | _maxListeners: undefined,
server_2_1 | _options: {
server_2_1 | maxRedirects: 21,
server_2_1 | maxBodyLength: 10485760,
server_2_1 | protocol: 'http:',
server_2_1 | path: '/server1/users/2',
server_2_1 | method: 'GET',
server_2_1 | headers: {
server_2_1 | Accept: 'application/json, text/plain, */*',
server_2_1 | 'User-Agent': 'axios/0.27.2'
server_2_1 | },
server_2_1 | agent: undefined,
server_2_1 | agents: { http: undefined, https: undefined },
server_2_1 | auth: undefined,
server_2_1 | hostname: 'server_1.localhost',
server_2_1 | port: null,
server_2_1 | nativeProtocols: {
server_2_1 | 'http:': {
server_2_1 | _connectionListener: [Function: connectionListener],
server_2_1 | METHODS: [
server_2_1 | 'ACL', 'BIND', 'CHECKOUT',
server_2_1 | 'CONNECT', 'COPY', 'DELETE',
server_2_1 | 'GET', 'HEAD', 'LINK',
server_2_1 | 'LOCK', 'M-SEARCH', 'MERGE',
server_2_1 | 'MKACTIVITY', 'MKCALENDAR', 'MKCOL',
server_2_1 | 'MOVE', 'NOTIFY', 'OPTIONS',
server_2_1 | 'PATCH', 'POST', 'PROPFIND',
server_2_1 | 'PROPPATCH', 'PURGE', 'PUT',
server_2_1 | 'REBIND', 'REPORT', 'SEARCH',
server_2_1 | 'SOURCE', 'SUBSCRIBE', 'TRACE',
server_2_1 | 'UNBIND', 'UNLINK', 'UNLOCK',
server_2_1 | 'UNSUBSCRIBE'
server_2_1 | ],
server_2_1 | STATUS_CODES: {
server_2_1 | '100': 'Continue',
server_2_1 | '101': 'Switching Protocols',
server_2_1 | '102': 'Processing',
server_2_1 | '103': 'Early Hints',
server_2_1 | '200': 'OK',
server_2_1 | '201': 'Created',
server_2_1 | '202': 'Accepted',
server_2_1 | '203': 'Non-Authoritative Information',
server_2_1 | '204': 'No Content',
server_2_1 | '205': 'Reset Content',
server_2_1 | '206': 'Partial Content',
server_2_1 | '207': 'Multi-Status',
server_2_1 | '208': 'Already Reported',
server_2_1 | '226': 'IM Used',
server_2_1 | '300': 'Multiple Choices',
server_2_1 | '301': 'Moved Permanently',
server_2_1 | '302': 'Found',
server_2_1 | '303': 'See Other',
server_2_1 | '304': 'Not Modified',
server_2_1 | '305': 'Use Proxy',
server_2_1 | '307': 'Temporary Redirect',
server_2_1 | '308': 'Permanent Redirect',
server_2_1 | '400': 'Bad Request',
server_2_1 | '401': 'Unauthorized',
server_2_1 | '402': 'Payment Required',
server_2_1 | '403': 'Forbidden',
server_2_1 | '404': 'Not Found',
server_2_1 | '405': 'Method Not Allowed',
server_2_1 | '406': 'Not Acceptable',
server_2_1 | '407': 'Proxy Authentication Required',
server_2_1 | '408': 'Request Timeout',
server_2_1 | '409': 'Conflict',
server_2_1 | '410': 'Gone',
server_2_1 | '411': 'Length Required',
server_2_1 | '412': 'Precondition Failed',
server_2_1 | '413': 'Payload Too Large',
server_2_1 | '414': 'URI Too Long',
server_2_1 | '415': 'Unsupported Media Type',
server_2_1 | '416': 'Range Not Satisfiable',
server_2_1 | '417': 'Expectation Failed',
server_2_1 | '418': "I'm a Teapot",
server_2_1 | '421': 'Misdirected Request',
server_2_1 | '422': 'Unprocessable Entity',
server_2_1 | '423': 'Locked',
server_2_1 | '424': 'Failed Dependency',
server_2_1 | '425': 'Too Early',
server_2_1 | '426': 'Upgrade Required',
server_2_1 | '428': 'Precondition Required',
server_2_1 | '429': 'Too Many Requests',
server_2_1 | '431': 'Request Header Fields Too Large',
server_2_1 | '451': 'Unavailable For Legal Reasons',
server_2_1 | '500': 'Internal Server Error',
server_2_1 | '501': 'Not Implemented',
server_2_1 | '502': 'Bad Gateway',
server_2_1 | '503': 'Service Unavailable',
server_2_1 | '504': 'Gateway Timeout',
server_2_1 | '505': 'HTTP Version Not Supported',
server_2_1 | '506': 'Variant Also Negotiates',
server_2_1 | '507': 'Insufficient Storage',
server_2_1 | '508': 'Loop Detected',
server_2_1 | '509': 'Bandwidth Limit Exceeded',
server_2_1 | '510': 'Not Extended',
server_2_1 | '511': 'Network Authentication Required'
server_2_1 | },
server_2_1 | Agent: [Function: Agent] { defaultMaxSockets: Infinity },
server_2_1 | ClientRequest: [Function: ClientRequest],
server_2_1 | IncomingMessage: [Function: IncomingMessage],
server_2_1 | OutgoingMessage: [Function: OutgoingMessage],
server_2_1 | Server: [Function: Server],
server_2_1 | ServerResponse: [Function: ServerResponse],
server_2_1 | createServer: [Function: createServer],
server_2_1 | validateHeaderName: [Function: __node_internal_],
server_2_1 | validateHeaderValue: [Function: __node_internal_],
server_2_1 | get: [Function: get],
server_2_1 | request: [Function: request],
server_2_1 | setMaxIdleHTTPParsers: [Function: setMaxIdleHTTPParsers],
server_2_1 | maxHeaderSize: [Getter],
server_2_1 | globalAgent: [Getter/Setter]
server_2_1 | },
server_2_1 | 'https:': {
server_2_1 | Agent: [Function: Agent],
server_2_1 | globalAgent: Agent {
server_2_1 | _events: [Object: null prototype],
server_2_1 | _eventsCount: 2,
server_2_1 | _maxListeners: undefined,
server_2_1 | defaultPort: 443,
server_2_1 | protocol: 'https:',
server_2_1 | options: [Object: null prototype],
server_2_1 | requests: [Object: null prototype] {},
server_2_1 | sockets: [Object: null prototype] {},
server_2_1 | freeSockets: [Object: null prototype] {},
server_2_1 | keepAliveMsecs: 1000,
server_2_1 | keepAlive: false,
server_2_1 | maxSockets: Infinity,
server_2_1 | maxFreeSockets: 256,
server_2_1 | scheduling: 'lifo',
server_2_1 | maxTotalSockets: Infinity,
server_2_1 | totalSocketCount: 0,
server_2_1 | maxCachedSessions: 100,
server_2_1 | _sessionCache: [Object],
server_2_1 | [Symbol(kCapture)]: false
server_2_1 | },
server_2_1 | Server: [Function: Server],
server_2_1 | createServer: [Function: createServer],
server_2_1 | get: [Function: get],
server_2_1 | request: [Function: request]
server_2_1 | }
server_2_1 | },
server_2_1 | pathname: '/server1/users/2'
server_2_1 | },
server_2_1 | _ended: true,
server_2_1 | _ending: true,
server_2_1 | _redirectCount: 0,
server_2_1 | _redirects: [],
server_2_1 | _requestBodyLength: 0,
server_2_1 | _requestBodyBuffers: [],
server_2_1 | _onNativeResponse: [Function (anonymous)],
server_2_1 | _currentRequest: <ref *1> ClientRequest {
server_2_1 | _events: [Object: null prototype] {
server_2_1 | response: [Function: bound onceWrapper] {
server_2_1 | listener: [Function (anonymous)]
server_2_1 | },
server_2_1 | abort: [Function (anonymous)],
server_2_1 | aborted: [Function (anonymous)],
server_2_1 | connect: [Function (anonymous)],
server_2_1 | error: [Function (anonymous)],
server_2_1 | socket: [Function (anonymous)],
server_2_1 | timeout: [Function (anonymous)]
server_2_1 | },
server_2_1 | _eventsCount: 7,
server_2_1 | _maxListeners: undefined,
server_2_1 | outputData: [],
server_2_1 | outputSize: 0,
server_2_1 | writable: true,
server_2_1 | destroyed: false,
server_2_1 | _last: true,
server_2_1 | chunkedEncoding: false,
server_2_1 | shouldKeepAlive: false,
server_2_1 | maxRequestsOnConnectionReached: false,
server_2_1 | _defaultKeepAlive: true,
server_2_1 | useChunkedEncodingByDefault: false,
server_2_1 | sendDate: false,
server_2_1 | _removedConnection: false,
server_2_1 | _removedContLen: false,
server_2_1 | _removedTE: false,
server_2_1 | _contentLength: 0,
server_2_1 | _hasBody: true,
server_2_1 | _trailer: '',
server_2_1 | finished: true,
server_2_1 | _headerSent: true,
server_2_1 | _closed: false,
server_2_1 | socket: Socket {
server_2_1 | connecting: false,
server_2_1 | _hadError: true,
server_2_1 | _parent: null,
server_2_1 | _host: 'server_1.localhost',
server_2_1 | _closeAfterHandlingError: false,
server_2_1 | _readableState: ReadableState {
server_2_1 | objectMode: false,
server_2_1 | highWaterMark: 16384,
server_2_1 | buffer: BufferList { head: null, tail: null, length: 0 },
server_2_1 | length: 0,
server_2_1 | pipes: [],
server_2_1 | flowing: true,
server_2_1 | ended: false,
server_2_1 | endEmitted: false,
server_2_1 | reading: true,
server_2_1 | constructed: true,
server_2_1 | sync: false,
server_2_1 | needReadable: true,
server_2_1 | emittedReadable: false,
server_2_1 | readableListening: false,
server_2_1 | resumeScheduled: false,
server_2_1 | errorEmitted: true,
server_2_1 | emitClose: false,
server_2_1 | autoDestroy: true,
server_2_1 | destroyed: true,
server_2_1 | errored: Error: connect ECONNREFUSED 127.0.0.1:80
server_2_1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) {
server_2_1 | errno: -111,
server_2_1 | code: 'ECONNREFUSED',
server_2_1 | syscall: 'connect',
server_2_1 | address: '127.0.0.1',
server_2_1 | port: 80
server_2_1 | },
server_2_1 | closed: true,
server_2_1 | closeEmitted: true,
server_2_1 | defaultEncoding: 'utf8',
server_2_1 | awaitDrainWriters: null,
server_2_1 | multiAwaitDrain: false,
server_2_1 | readingMore: false,
server_2_1 | dataEmitted: false,
server_2_1 | decoder: null,
server_2_1 | encoding: null,
server_2_1 | [Symbol(kPaused)]: false
server_2_1 | },
server_2_1 | _events: [Object: null prototype] {
server_2_1 | end: [Function: onReadableStreamEnd],
server_2_1 | connect: [ [Function], [Function], [Function] ],
server_2_1 | free: [Function: onFree],
server_2_1 | close: [ [Function: onClose], [Function: socketCloseListener] ],
server_2_1 | timeout: [Function: onTimeout],
server_2_1 | agentRemove: [Function: onRemove],
server_2_1 | error: [Function: socketErrorListener],
server_2_1 | drain: [Function: ondrain]
server_2_1 | },
server_2_1 | _eventsCount: 8,
server_2_1 | _maxListeners: undefined,
server_2_1 | _writableState: WritableState {
server_2_1 | objectMode: false,
server_2_1 | highWaterMark: 16384,
server_2_1 | finalCalled: false,
server_2_1 | needDrain: false,
server_2_1 | ending: false,
server_2_1 | ended: false,
server_2_1 | finished: false,
server_2_1 | destroyed: true,
server_2_1 | decodeStrings: false,
server_2_1 | defaultEncoding: 'utf8',
server_2_1 | length: 147,
server_2_1 | writing: true,
server_2_1 | corked: 0,
server_2_1 | sync: false,
server_2_1 | bufferProcessing: false,
server_2_1 | onwrite: [Function: bound onwrite],
server_2_1 | writecb: [Function: bound onFinish],
server_2_1 | writelen: 147,
server_2_1 | afterWriteTickInfo: null,
server_2_1 | buffered: [],
server_2_1 | bufferedIndex: 0,
server_2_1 | allBuffers: true,
server_2_1 | allNoop: true,
server_2_1 | pendingcb: 1,
server_2_1 | constructed: true,
server_2_1 | prefinished: false,
server_2_1 | errorEmitted: true,
server_2_1 | emitClose: false,
server_2_1 | autoDestroy: true,
server_2_1 | errored: Error: connect ECONNREFUSED 127.0.0.1:80
server_2_1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) {
server_2_1 | errno: -111,
server_2_1 | code: 'ECONNREFUSED',
server_2_1 | syscall: 'connect',
server_2_1 | address: '127.0.0.1',
server_2_1 | port: 80
server_2_1 | },
server_2_1 | closed: true,
server_2_1 | closeEmitted: true,
server_2_1 | [Symbol(kOnFinished)]: []
server_2_1 | },
server_2_1 | allowHalfOpen: false,
server_2_1 | _sockname: null,
server_2_1 | _pendingData: 'GET /server1/users/2 HTTP/1.1\r\n' +
server_2_1 | 'Accept: application/json, text/plain, */*\r\n' +
server_2_1 | 'User-Agent: axios/0.27.2\r\n' +
server_2_1 | 'Host: server_1.localhost\r\n' +
server_2_1 | 'Connection: close\r\n' +
server_2_1 | '\r\n',
server_2_1 | _pendingEncoding: 'latin1',
server_2_1 | server: null,
server_2_1 | _server: null,
server_2_1 | parser: null,
server_2_1 | _httpMessage: [Circular *1],
server_2_1 | [Symbol(async_id_symbol)]: 11,
server_2_1 | [Symbol(kHandle)]: null,
server_2_1 | [Symbol(lastWriteQueueSize)]: 0,
server_2_1 | [Symbol(timeout)]: null,
server_2_1 | [Symbol(kBuffer)]: null,
server_2_1 | [Symbol(kBufferCb)]: null,
server_2_1 | [Symbol(kBufferGen)]: null,
server_2_1 | [Symbol(kCapture)]: false,
server_2_1 | [Symbol(kSetNoDelay)]: true,
server_2_1 | [Symbol(kSetKeepAlive)]: true,
server_2_1 | [Symbol(kSetKeepAliveInitialDelay)]: 60,
server_2_1 | [Symbol(kBytesRead)]: 0,
server_2_1 | [Symbol(kBytesWritten)]: 0
server_2_1 | },
server_2_1 | _header: 'GET /server1/users/2 HTTP/1.1\r\n' +
server_2_1 | 'Accept: application/json, text/plain, */*\r\n' +
server_2_1 | 'User-Agent: axios/0.27.2\r\n' +
server_2_1 | 'Host: server_1.localhost\r\n' +
server_2_1 | 'Connection: close\r\n' +
server_2_1 | '\r\n',
server_2_1 | _keepAliveTimeout: 0,
server_2_1 | _onPendingData: [Function: nop],
server_2_1 | agent: Agent {
server_2_1 | _events: [Object: null prototype] {
server_2_1 | free: [Function (anonymous)],
server_2_1 | newListener: [Function: maybeEnableKeylog]
server_2_1 | },
server_2_1 | _eventsCount: 2,
server_2_1 | _maxListeners: undefined,
server_2_1 | defaultPort: 80,
server_2_1 | protocol: 'http:',
server_2_1 | options: [Object: null prototype] { noDelay: true, path: null },
server_2_1 | requests: [Object: null prototype] {},
server_2_1 | sockets: [Object: null prototype] {
server_2_1 | 'server_1.localhost:80:': [ [Socket] ]
server_2_1 | },
server_2_1 | freeSockets: [Object: null prototype] {},
server_2_1 | keepAliveMsecs: 1000,
server_2_1 | keepAlive: false,
server_2_1 | maxSockets: Infinity,
server_2_1 | maxFreeSockets: 256,
server_2_1 | scheduling: 'lifo',
server_2_1 | maxTotalSockets: Infinity,
server_2_1 | totalSocketCount: 1,
server_2_1 | [Symbol(kCapture)]: false
server_2_1 | },
server_2_1 | socketPath: undefined,
server_2_1 | method: 'GET',
server_2_1 | maxHeaderSize: undefined,
server_2_1 | insecureHTTPParser: undefined,
server_2_1 | path: '/server1/users/2',
server_2_1 | _ended: false,
server_2_1 | res: null,
server_2_1 | aborted: false,
server_2_1 | timeoutCb: null,
server_2_1 | upgradeOrConnect: false,
server_2_1 | parser: null,
server_2_1 | maxHeadersCount: null,
server_2_1 | reusedSocket: false,
server_2_1 | host: 'server_1.localhost',
server_2_1 | protocol: 'http:',
server_2_1 | _redirectable: [Circular *2],
server_2_1 | [Symbol(kCapture)]: false,
server_2_1 | [Symbol(kNeedDrain)]: false,
server_2_1 | [Symbol(corked)]: 0,
server_2_1 | [Symbol(kOutHeaders)]: [Object: null prototype] {
server_2_1 | accept: [ 'Accept', 'application/json, text/plain, */*' ],
server_2_1 | 'user-agent': [ 'User-Agent', 'axios/0.27.2' ],
server_2_1 | host: [ 'Host', 'server_1.localhost' ]
server_2_1 | },
server_2_1 | [Symbol(kUniqueHeaders)]: null
server_2_1 | },
server_2_1 | _currentUrl: 'http://server_1.localhost/server1/users/2',
server_2_1 | [Symbol(kCapture)]: false
server_2_1 | }
server_2_1 | }