@sergeyyarkov
Web-developer.

Как связать apollo с next js?

Всем привет, не получается связать apollo c nextjs. У меня есть HOC от nextjs withApollo, в него я оборачиваю свои страницы и вроде бы всё работает, но когда я делаю ссылку на api к своему api.localhost то в консоле я получаю ошибку
Error while running `getDataFromTree` { Error: Network error: request to http://api.localhost/ failed, reason: connect ECONNREFUSED 127.0.0.1:80
apollo-next-graphql |     at new ApolloError (/usr/src/app/node_modules/apollo-client/bundle.umd.js:92:26)
apollo-next-graphql |     at /usr/src/app/node_modules/apollo-client/bundle.umd.js:1588:34
apollo-next-graphql |     at /usr/src/app/node_modules/apollo-client/bundle.umd.js:2008:15
apollo-next-graphql |     at Set.forEach (<anonymous>)
apollo-next-graphql |     at /usr/src/app/node_modules/apollo-client/bundle.umd.js:2006:26
apollo-next-graphql |     at Map.forEach (<anonymous>)
apollo-next-graphql |     at QueryManager.broadcastQueries (/usr/src/app/node_modules/apollo-client/bundle.umd.js:2004:20)
apollo-next-graphql |     at /usr/src/app/node_modules/apollo-client/bundle.umd.js:1483:29
apollo-next-graphql |     at process._tickCallback (internal/process/next_tick.js:68:7)
apollo-next-graphql |   graphQLErrors: [],
apollo-next-graphql |   networkError:
apollo-next-graphql |    { FetchError: request to http://api.localhost/ failed, reason: connect ECONNREFUSED 127.0.0.1:80
apollo-next-graphql |        at ClientRequest.<anonymous> (/usr/src/app/node_modules/node-fetch/lib/index.js:1455:11)
apollo-next-graphql |        at ClientRequest.emit (events.js:198:13)
apollo-next-graphql |        at Socket.socketErrorListener (_http_client.js:401:9)
apollo-next-graphql |        at Socket.emit (events.js:198:13)
apollo-next-graphql |        at emitErrorNT (internal/streams/destroy.js:91:8)
apollo-next-graphql |        at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
apollo-next-graphql |        at process._tickCallback (internal/process/next_tick.js:63:19)
apollo-next-graphql |      message:
apollo-next-graphql |       'request to http://api.localhost/ failed, reason: connect ECONNREFUSED 127.0.0.1:80',
apollo-next-graphql |      type: 'system',
apollo-next-graphql |      errno: 'ECONNREFUSED',
apollo-next-graphql |      code: 'ECONNREFUSED' },
apollo-next-graphql |   message:
apollo-next-graphql |    'Network error: request to http://api.localhost/ failed, reason: connect ECONNREFUSED 127.0.0.1:80',
apollo-next-graphql |   extraInfo: undefined }

и соответственно SSR у меня нету (но данные приходят). Но если я сделаю запрос вообще на другой сервер, то все данные тоже приходят и SSR есть. Почему возникает такая ошибка? Не могу решить эту проблему уже несколько дней, помогите пожалуйста.
Вот конфигурационный файл nginx:
# Main
server {
    listen       80;
    server_name  localhost;
       
    location / {
        proxy_pass http://apollo-next-graphql:3000; 
        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;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

# CMS
server {
    listen       80;
    server_name  dashboard.localhost;
    
    location / {
        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_pass http://strapi:1337;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

# GraphQL
server {
    listen       80;
    server_name  api.localhost;
    
    location / {
        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_pass http://strapi:1337/graphql;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы