だから私は、nginx httpsリバースプロキシの背後にあるドッカーイメージを介してOwnCloudのインスタンスを実行しようとしていますが、 httpsに移動する代わりに、リバースプロキシを介してパスを書き直す必要があります:// my-server / を使用してOwnCloudにアクセスするには、 https:// my-server/cloud を使用しますそれに到達するために。
私の現在のリバースプロキシロケーションブロックは次のようになります。
location /cloud {
rewrite /cloud/(.*) /$1 break;
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $Host;
}
しかし、これは半分しか機能しません。 htts:// my-server/cloudに移動すると、OwnCloudで生成された404エラーが発生し、['take me back to OwnCloud]をクリックすると、 https:/にリダイレクトされます。 /my-server/index.php リダイレクトは https:// my-server/cloud/indexに移動する必要があるため、nginxレベル404になります.php 。
/ cloudが追加されたリンクを返すように、OwnCloud構成を変更する必要があるかもしれないと思っていますが、Dockerイメージを介してそれを行う方法がわかりません。これに関する助けに感謝します。
私はおそらくこのようなことをするでしょう:
location /cloud/ {
proxy_pass http://localhost:8080/;
}
locationおよびproxy_passディレクティブ[1]の最後にある末尾のスラッシュ/に注意してください。これはrsyncの動作と似ています。たとえば、末尾のスラッシュが存在する場合は、その後のすべてが置き換えられます。あなたの場合:http://proxy/cloud
はアップストリームのhttp://upstream:8080/
にリクエストし、OwnCloudが使用しているサブディレクトリは、例のようにhttp://proxy/cloud/example
としてリクエストされ、http://upstream:8080/example
としてリクエストされます。
アップストリームにプロキシする前に/ cloudディレクトリをキャッチしている場合は、rewriteは必要ありません。
また、他の設定は必要ないので削除します。ヘッダーを何かに使用している場合を除いて、リダイレクトによって問題が発生することはないと思います。
[1]出典: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/