ポート80の同じサーバー上のNode.jsとPHP

ポート80の同じサーバー上のNode.jsとPHP

Linuxサーバーのポート8080で実行されるnode.jsサイトがあります。また、同じストレージデバイスのポート80で実行されているPHPサイト(bugzilla)もあります。現在、私の設定は次のとおりです。

どちらのサイトも、次のようにポート80で実行したいと思います。

それは可能ですか?

ベストアンサー1

まず、コンピュータで両方のサービスを無効にします。その後、そのポートを異常なポートに変更して再起動します。たとえば、次のようになります。

  • PHPアプリケーション6821

  • NodeJSアプリケーション6822

ぜひ開いてみてください127.0.0.1!ネットワークインターフェイスで開かないでください。


nginx最も一般的に使用されますReverse Proxy。ディストリビューションによっては、次のいずれかのコマンドを使用してインストールできます。

Debian ベースのディストリビューションの場合:

$ sudo apt install nginx

Archベースのディストリビューションの場合:

$ sudo pacman -S nginx

ディストリビューションによって完全に異なり、パッケージは独自のファイル階層を持つことができます。だから私はこれをデフォルトのnginx.conf設定ファイルとして提供します。必要な名前で元の設定ファイルをコピーすることを忘れないでください。 nginx.conf.origin

$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.origin

次に、を開き、/etc/nginx/nginx.conf既存の設定を削除してから、次の設定をコピーします。

user nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    keepalive_timeout  15;

    server {
        listen       80 default_server;
        server_name  example.com; 

        location /mynodejs {
            proxy_pass http://127.0.0.1:6822;
        }

        location /bugzilla {
            proxy_pass http://127.0.0.1:6821;
        }
    }
}

注:この構成ファイルは私が直接作成したものなので、nginxを実行しようとするとエラーが発生する可能性があることを考慮してください。もしそうなら、テストできるようにここにコメントを書いてください。

今nginxを再起動してください!あなたはあなたが望むものを得るでしょう。

おすすめ記事