ホームページ > ウェブフロントエンド > フロントエンドQ&A > Linuxで起動するとnodejsにアクセスできない

Linuxで起動するとnodejsにアクセスできない

PHPz
リリース: 2023-05-08 11:15:07
オリジナル
696 人が閲覧しました

Node.js は、サーバー側で JavaScript コードを実行できる非常に強力な JavaScript 実行環境です。効率的なイベント駆動メカニズムとノンブロッキング I/O モデルを備えており、スケーラブルなネットワーク アプリケーションの構築に最適です。

ただし、Linux 上で Node.js アプリケーションを起動すると、アプリケーションやポートにアクセスできないなどの問題が発生する可能性があります。これらの問題は、アプリケーションのパフォーマンスと可用性に影響を与える可能性があります。この記事では、これらの問題が発生する理由とその解決方法について説明します。

  1. ポートが占有されている

Linux 上でアプリケーションが特定のポートをリッスンしようとすると、ポートが占有されるという問題が発生することがあります。これは、別のアプリケーションがポートを占有しているか、前のアプリケーションが適切に閉じられなかったため、ポートが占有されたままになっている可能性があります。

次のコマンドを使用して、ポートを占有しているプロセスを確認できます。

sudo lsof -i :<port>
ログイン後にコピー

このコマンドは、ポートを占有しているプロセスの PID とプロセス名を返します。次のコマンドを使用してプロセスを強制終了できます:

sudo kill <PID>
ログイン後にコピー

プロセスを強制終了できない場合は、「-9」オプションを使用して強制終了を試みることができます:

sudo kill -9 <PID>
ログイン後にコピー
  1. ファイアウォールのブロックアクセス

Linux 上で Node.js アプリケーションを起動すると、ファイアウォールによってアプリケーションまたはポートへのアクセスがブロックされる場合があります。アプリケーションのポートをファイアウォールの例外リストに追加して、そのポートへの外部アクセスを許可できます。

Ubuntu では、次のコマンドを使用して、ファイアウォールの例外リストにポートを追加できます。

sudo ufw allow <port>/tcp
ログイン後にコピー

CentOS では、次のコマンドを使用して、ファイアウォールの例外リストにポートを追加できます。 :

sudo firewall-cmd --zone=public --add-port=<port>/tcp --permanent
ログイン後にコピー
  1. IP アドレス バインド エラー

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 アドレスにバインドすることを意味します。

  1. DNS 解決エラー

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
ログイン後にコピー
  1. Application Code Error

最後に、あなたの環境にバグがある可能性があります。アプリケーションコードが原因でアプリケーションにアクセスできなくなります。ログ ファイルを確認して、エラーに関する詳細情報を見つけることができます。 Node.js に付属のデバッガーや Chrome 開発者ツールなどのデバッグ ツールを使用してデバッグすることもできます。

Linux 上で Node.js アプリケーションを起動するときにさまざまな問題が発生する可能性がありますが、注意深く検査してデバッグすることで、これらの問題を解決し、アプリケーションが適切に実行されることを確認できます。

以上がLinuxで起動するとnodejsにアクセスできないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート