URL(nginx)にポートを保持

URL(nginx)にポートを保持

ユーザーがその内容を表示してファイルをダウンロードできるように、いくつかのフォルダを表示するためにnginxサーバーを実行しようとしています。しかし、nginxはdockerコンテナ内のポート80でリッスンしますが、server.com:1080の外ではリッスンしたいと思います。外部パスが設定されました。

ようこそページは機能しますが、server.com:1080/folderURLを介してフォルダにアクセスすると、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;
}

関連情報