こんにちは、ローカル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ファイルがルートからロードしようとしています(ローカルシステムで構成されていますが、リクエストのみを渡すため、ルートの/rpi
jsおよびCSSリクエストはリビジョンコードを通過しません)。
この問題を解決するには、ローカル Web サーバー上の Web アプリケーションを/rpi
rev エージェントを介して使用するのと同じパスに移動します。これで、すべての要求がトンネルを正しく通過します。これをテストするには、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
、すべてが正しく読み込まれるようになります。