ユーザーがその内容を表示してファイルをダウンロードできるように、いくつかのフォルダを表示するためにnginxサーバーを実行しようとしています。しかし、nginxはdockerコンテナ内のポート80でリッスンしますが、server.com:1080の外ではリッスンしたいと思います。外部パスが設定されました。
ようこそページは機能しますが、server.com:1080/folder
URLを介してフォルダにアクセスすると、server.com:80/folder
「このアドレスに接続できません」ページが表示されます。私はNginxに初めて触れたので、server_nameを変更してProxy_passを追加するなどの意味を正しく理解していないまま、いくつかのことを試しましたが、うまく機能しませんでした。おそらくこの状況に関する特定の用語がわからないため、Googleが一致する解決策を見つけることができない可能性があります。
答え1
これが最善の方法ではないかもしれませんが、私が見る方法の1つは、サブディレクトリをルートディレクトリにリダイレクトすることです。
1-Nginx設定ファイルを開きます。
sudo vim /etc/nginx/nginx.conf
2- 次の位置ブロックを追加します。
location ^~ /folder {
rewrite ^/folder(.*)$ $1 last;
}
ウェルカムページが正しく機能すると言われたので、すでにこれを行っていると確信しています。しかし、ホストポートをコンテナポートに正しくマッピングしましたか?
答え2
folder/
リンクが基本的に機能することがわかりました(ポートを変更しないでください)。追加する唯一のことは、403 Forbiddenを修正することです。autoindex on
これで、フォルダ、サブフォルダが表示され、ファイルをダウンロードできるようになります。私はそれで十分です。したがって、他のトリックは必要ありません。
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
autoindex on;
}