Nuxt.js asyncDataを使ってAPIアクセスしたらconnect ETIMEDOUTになった

結論

DNSの名前解決に失敗している

理由

asyncDataはリクエスト元がサーバーサイドなので、自分自身のサーバーに対してリクエストしているのだけれど、そのリクエスト指定がフルのURL(https://domain-name.com/api/xxxxx)のような形だったのですが

そのサーバーの前段にconohaのロードバランサーを入れていました。
その結果、DNSの名前解決先としてはロードバランサーのIPを示しているため

結果、ロードバランサーの後ろにあるNuxt.jsサーバーからロードバランサーapiリクエストが
飛ぶという問題でした

解決策

APIサーバーを別に立てて、別ドメインにしました。
Firebaseのfunctionsが便利でしたので、functionsにnodeサーバーでAPIを構築し解決です。

Receive the latest news in your email
Table of content
Related articles