インターネットからローカルWebサーバーにアクセスするためのSSHリバーストンネル

インターネットからローカルWebサーバーにアクセスするためのSSHリバーストンネル

こんにちは、ローカルWebサーバーはlocahostで実行されています。ローカルホスト:8765外部ネットワークからこのサーバーにアクセスする必要があります。また、SSHサーバーとApacheサーバーを実行するパブリックサーバーもあります。

リバースプロキシサーバーがあるリバースSSHトンネルを介してWebサイトにアクセスできることがわかりました。 Belwは私が使用するコマンドです

 ssh [email protected] -R 3000:localhost:8765

Apache Reverse Proxyの公開サービスでは、次の設定を行いました。

/etc/apache2/sites-available/default-ssl.conf

    ProxyPass /rpi http://127.0.0.1:3000/
    ProxyPassReverse /rpi http://127.0.0.1:3000/

私の公共サービスの住所は次のとおりです。

https://test.ddns.net:8090

トンネリングされたローカルWebサーバーにアクセスできますが、https://test.ddns.net:8090/rpi問題はJavaスクリプトとCSSがロードされないことです。つまり、リンクは機能しません。ブラウザコンソールを確認するとエラーが表示されます。

GEThttps://test.ddns.net:8090/static/css/jquery.timepicker.css
[HTTP/1.1 404 Not Found 316ms]

GEThttps://test.ddns.net:8090/static/css/ui.css
[HTTP/1.1 404 Not Found 539ms]

GEThttps://test.ddns.net:8090/static/css/main.css
[HTTP/1.1 404 Not Found 606ms]

回避策。

ベストアンサー1

ローカルマシンでは、Webアプリケーションはルートパスにあります。つまり、次からアクセスできます。

http://127.0.0.1:3000/

ただし、リバースプロキシを設定すると、/rpiトンネル(ルートではない)への転送パスが設定されます。 JavascriptファイルとCSSファイルがルートからロードしようとしています(ローカルシステムで構成されていますが、リクエストのみを渡すため、ルートの/rpijsおよびCSSリクエストはリビジョンコードを通過しません)。

この問題を解決するには、ローカル Web サーバー上の Web アプリケーションを/rpirev エージェントを介して使用するのと同じパスに移動します。これで、すべての要求がトンネルを正しく通過します。これをテストするには、Webアプリケーションがローカルでアクセス可能であることを確認する必要があります。

http://127.0.0.1:3000/rpi

次に、リバースプロキシを次のように再構成します。

/etc/apache2/sites-available/default-ssl.conf

ProxyPass /rpi http://127.0.0.1:3000/rpi
ProxyPassReverse /rpi http://127.0.0.1:3000/rpi

これでウェブサイトにアクセスできhttps://test.ddns.net:8090/rpi、すべてが正しく読み込まれるようになります。

おすすめ記事