Linuxサーバーのポート8080で実行されるnode.jsサイトがあります。また、同じストレージデバイスのポート80で実行されているPHPサイト(bugzilla)もあります。現在、私の設定は次のとおりです。
- http://example.com:8080(node.jsアプリケーション)
- http://example.com/bugzilla(バグジラホームページ)
どちらのサイトも、次のようにポート80で実行したいと思います。
- http://example.com/mynodejs(node.jsアプリケーション)
- http://example.com/bugzilla(バグジラホームページ)
それは可能ですか?
ベストアンサー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を再起動してください!あなたはあなたが望むものを得るでしょう。