
私は fastcgi キャッシュを備えた nginx ウェブサーバーを使用しています。 fastcgi_cache_path は、nginx からの各仮想ホストのウェブルートのサブディレクトリに設定されています。 (例: /var/html/user01/httpdocs/nginx_cache ... /var/html/user02/httpdocs/nginx_cache。)
応答ヘッダー (x-cache ヒット) と nginx_cache ディレクトリに保存されたデータからわかるように、キャッシュ自体は正常に動作しています。
したがって、nginx_cache ディレクトリを見ると、所有者は常に nginx であることがわかります。私がやりたかったのは、ユーザー (user01、user02、...) の nginx_cache フォルダーに対する権限 (読み取り/削除) を永続的に設定することです。
すでに試したこと: - すべての権限を再帰的に user0x に変更します (変更と新しいファイルは nginx によって上書きされます) - nginx 構成を検索します (nginx_store_access のみが見つかりましたが、これも機能しません)
この問題をどうすれば解決できますか?
答え1
まず、キャッシュ フォルダーを Web ルートの下に保存しないでください/var/www/html/user01/httpdocs
。そうすると、キャッシュ コンテンツがすべての Web 訪問者に公開されることになります。/var/www/html/user01
レベルに移動すると、コンテンツにアクセスできなくなります。
ファイルのアクセス許可に関しては、次のようにしてキャッシュ ディレクトリに ACL を適用してみてください。
setfacl -d -m u:user01:rw ngx_cache
これにより、ディレクトリに ACL が割り当てられngx_cache
、キャッシュ ディレクトリ内のすべてのファイルが読み取りおよび書き込み可能になりますuser01
。