Hollywis LLC

湘南にある小さなシステム会社

← 技術ブログ一覧に戻る

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

Nuxt.js

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

結論

[DNS](http://d.hatena.ne.jp/keyword/DNS)の名前解決に失敗している

理由

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

そのサーバーの前段にconohaのロードバランサーを入れていました。

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

結果、ロードバランサーの後ろにあるNuxt.jsサーバーからロードバランサーにapiリクエストが

飛ぶという問題でした

解決策

[API](http://d.hatena.ne.jp/keyword/API)サーバーを別に立てて、別[ドメイン](http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3)にしました。

Firebaseのfunctionsが便利でしたので、functionsにnodeサーバーでAPIを構築し解決です。