Nginxを介してノードアプリを提供しようとしていますが、/public
フォルダにある可能性のある静的ファイルを提供しようとしています。私はそれだけの作業をしました-domain.tld/
または静的フォルダーのインデックスにアクセスすると、403が表示されます。 directory index of "/var/www/domain.tld/" is forbidden
。すべての権限が修正されているように見えるので、混乱しています。
これは私のサーバーブロックです。
server {
server_name domain.tld;
location / {
root /var/www/domain.tld/public;
try_files $uri $uri/ @proxy;
access_log off;
}
location @proxy {
proxy_pass http://127.0.0.1:3000;
}
}
任意のランダムなページ(想定されるサブディレクトリを含む)にアクセスすると、ノードアプリに適切にプロキシされます。ただし、既存の静的ディレクトリのルート/およびルートの場合、403。
何か案は?
これは、ディレクトリが存在するため、try_files
チェックが原因です。
try_files $uri $uri/ @proxy;
成功します。ただし、ディレクトリインデックスファイルはなく(通常index.html
、 index を参照)、autoindex
もオンになりません( autoindex を参照)。
起こりたいことに応じて、次のオプションを検討してください。
常にディレクトリをバックエンドに渡します。これを行うには、$uri/
からtry_files
を削除します。
location /
root /var/www/domain.tld/public;
try_files $uri @proxy;
}
try_files
を介して特定のインデックスファイルを確認します(見つからない場合、リクエストはバックエンドに送られます)。
location /
root /var/www/domain.tld/public;
try_files $uri $uri/index.html @proxy;
}
autoindex
を有効にします。
location /
root /var/www/domain.tld/public;
try_files $uri $uri/ @proxy;
autoindex on;
}