Node.js は、サーバー側で JavaScript コードを実行できる非常に強力な JavaScript 実行環境です。効率的なイベント駆動メカニズムとノンブロッキング I/O モデルを備えており、スケーラブルなネットワーク アプリケーションの構築に最適です。
ただし、Linux 上で Node.js アプリケーションを起動すると、アプリケーションやポートにアクセスできないなどの問題が発生する可能性があります。これらの問題は、アプリケーションのパフォーマンスと可用性に影響を与える可能性があります。この記事では、これらの問題が発生する理由とその解決方法について説明します。
Linux 上でアプリケーションが特定のポートをリッスンしようとすると、ポートが占有されるという問題が発生することがあります。これは、別のアプリケーションがポートを占有しているか、前のアプリケーションが適切に閉じられなかったため、ポートが占有されたままになっている可能性があります。
次のコマンドを使用して、ポートを占有しているプロセスを確認できます。
sudo lsof -i :<port>
このコマンドは、ポートを占有しているプロセスの PID とプロセス名を返します。次のコマンドを使用してプロセスを強制終了できます:
sudo kill <PID>
プロセスを強制終了できない場合は、「-9」オプションを使用して強制終了を試みることができます:
sudo kill -9 <PID>
Linux 上で Node.js アプリケーションを起動すると、ファイアウォールによってアプリケーションまたはポートへのアクセスがブロックされる場合があります。アプリケーションのポートをファイアウォールの例外リストに追加して、そのポートへの外部アクセスを許可できます。
Ubuntu では、次のコマンドを使用して、ファイアウォールの例外リストにポートを追加できます。
sudo ufw allow <port>/tcp
CentOS では、次のコマンドを使用して、ファイアウォールの例外リストにポートを追加できます。 :
sudo firewall-cmd --zone=public --add-port=<port>/tcp --permanent
Linux 上で Node.js アプリケーションを起動すると、IP アドレス バインド エラーが発生する場合があります。これは、アプリケーション コードが間違った IP アドレスにバインドされており、アプリケーションにアクセスできなくなっていることが原因である可能性があります。
アプリケーション コードで正しい IP アドレスを指定できます。例:
const http = require('http'); const hostname = '0.0.0.0'; // or your IP const port = 3000; // or your port const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
上記のコードでは、ホスト名を「0.0.0.0」に設定します。これは、アプリケーションへのアクセスを保証するために、アプリケーションを利用可能なすべての IP アドレスにバインドすることを意味します。
Linux 上で Node.js アプリケーションを起動すると、DNS 解決エラーが発生する場合があります。これは、アプリケーションが存在しないドメイン名またはサーバーにアクセスしようとしていることが原因である可能性があります。次のコマンドを使用して DNS 構成を確認できます。
cat /etc/resolv.conf
このコマンドは、現在の DNS サーバーの構成を表示します。 Google DNS や Cloudflare DNS などのパブリック DNS サーバーを使用している場合は、それをネットワーク構成に追加できます。 「/etc/resolv.conf」ファイルを編集して、次のエントリを追加できます。
nameserver 8.8.8.8 # Google DNS nameserver 1.1.1.1 # Cloudflare DNS
最後に、あなたの環境にバグがある可能性があります。アプリケーションコードが原因でアプリケーションにアクセスできなくなります。ログ ファイルを確認して、エラーに関する詳細情報を見つけることができます。 Node.js に付属のデバッガーや Chrome 開発者ツールなどのデバッグ ツールを使用してデバッグすることもできます。
Linux 上で Node.js アプリケーションを起動するときにさまざまな問題が発生する可能性がありますが、注意深く検査してデバッグすることで、これらの問題を解決し、アプリケーションが適切に実行されることを確認できます。
以上がLinuxで起動するとnodejsにアクセスできないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。