Error 500 communication between two backend nodejs using traefik like reverse proxy into Docker

The service 2 exposes /service1/users/:id in this exposure I make a subquery to service1 with axios /service1/users/:id and I go through traefik.

But I get an error 500. The service1 does not receive the request.
Server2

app.get("/server2/users/:id", function(req, res) {
  
  axios.get("http://server_1.localhost/server1/users/2").then( (response) => {
    
    res.json(response);
  })

});

app.listen(3002);

Mon server 1

app.get("/server1/users/:id", function(req, res) {
  
  res.send({
    name: "test",
    lastName: "test",
    rule: "User",
  });
});
version: "3"
services:

  reverse-proxy:
    image: traefik:v2.8
    command: 
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=true"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      #- ./traefik.toml:/traefik.toml
    networks:
      - webgateway

  server_1:
    build: ./server_1
    ports:
      - "3001:3001"
    labels:
      - "traefik.docker.network=traefik"
      - "traefik.backend=server_1"
      - "traefik.frontend.rule=Host:server_1.localhost"
      - "traefik.http.routers.server_1.rule=Host(`server_1.localhost`)"
      - "traefik.http.routers.server_1.entrypoints=web"
      - "traefik.port=3001"
    networks:
      - webgateway

  server_2:
    build: ./server_2
    ports:
      - "3002:3002"
    labels:
      - "traefik.docker.network=traefik"
      - "traefik.backend=server_2"
      - "traefik.frontend.rule=Host:server_2.localhost"
      - "traefik.http.routers.server_2.rule=Host(`server_2.localhost`)"
      - "traefik.http.routers.server_2.entrypoints=web"
      - "traefik.port=3002"
    networks:
      - webgateway


networks:
  webgateway:
    driver: bridge

Hello @salamisodikiolawale and thanks for your interest in Traefik,

It seems that you are mixing Traefik v1 and v2 configurations. The Traefik v2 configuration should look like the following:

version: "3"
services:

  reverse-proxy:
    image: traefik:v2.8
    command: 
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=true"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      #- ./traefik.toml:/traefik.toml
    networks:
      - webgateway

  server_1:
    build: ./server_1
    ports:
      - "3001:3001"
    labels:
      - "traefik.http.routers.server_1.entrypoints=web" 
      - "traefik.http.routers.server_1.rule=Host(`server_1.localhost`)
      - "traefik.http.services.server_1.loadbalancer.server.port=3001"
    networks:
      - webgateway

  server_2:
    build: ./server_2
    ports:
      - "3002:3002"
    labels:
      - "traefik.http.routers.server_2.entrypoints=web" 
      - "traefik.http.routers.server_2.rule=Host(`server_2.localhost`)
      - "traefik.http.services.server_2.loadbalancer.server.port=3002"
    networks:
      - webgateway

Hope this helps!

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       | }

As the returned error is a connection error in server_2, my guess is that the hostname server_1.localhost is not resolvable in the server_2 container.

One way to fix that could be to change the call to http://server_1/server1/users/2 and set the Host header to server1.localhost (not setting the Host header will raise a 404).

1 Like

Thank you, It is ok now.
Now i can continuous to learning traefik.
@kevinpollet

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.