この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
その他の技術
›
サーバー構成
›
NginxのX-Sendfile機構(php版...)によるファイルアクセスの制御
眺める:
10873
|
答える:
0
[ウェブ]
NginxのX-Sendfile機構(PHP版)によるファイルアクセスの制御
[リンクをコピー]
クズども
掲載地 2018/11/07 10:05:15
|
|
|
BBSやウェブサイトは、このページを閲覧したり、リソースをダウンロードしたりする権限を持つことが多いです。数日前にnginxサーバーにアクセスし、x-sendfileを使ってこのファイル制御の実装方法を教えました。
1. X-Sendfileとは何ですか?
X-Sendfileは、バックエンドアプリケーションからフロントエンドのウェブサーバーへファイルダウンロードリクエストを中継し処理する仕組みであり、特に大規模なファイルダウンロードを扱う際に、バックエンドプログラムが送信のためにファイルの読み取りや処理を行うプレッシャーを軽減し、サーバーの効率を大幅に向上させます。
X-Sendfileは特定のHTTPヘッダーを通じて実装されます。これは、X-Sendfileヘッダー内のファイルのアドレスを指定することで、フロントエンドのウェブサーバーに広告を送ります。 ウェブサーバーはバックエンドからのこのヘッダーを検出すると、バックエンドからの他の出力を無視し、キャッシュヘッダーやブレークポイント再接続などの最適化を含む独自のコンポーネントを使ってファイルをユーザーに送信します。
しかし、X-Sendfileを使用する前に、これは標準的な機能ではなく、ほとんどのウェブサーバーではデフォルトで無効化されていることを理解することが重要です。 異なるウェブサーバーは異なる実装を持ち、X-Sendfileヘッダー形式も異なります。 設定が誤ると、ユーザーは0バイトのファイルをダウンロードすることがあります。
X-Sendfileを使用すると、.htaccess保護で無効化されていても、非ウェブディレクトリ(例:/root/)内のファイルをダウンロードできます。
異なるウェブサーバーは異なるHTTPヘッダーを実装しています
SENDFILEヘッダー
使用されているウェブサーバー
X-Sendfile
アパッチ、Lighttpd v1.5、チェロキー
X-LIGHTTPD-send-file
LightTPD v1.4
X-加速-リダイレクト
ンギンクス、チェロキー族
X-SendFileを使う欠点は、ファイル転送の制御を失うことです。 例えば、ファイルをダウンロード後に特定の操作を行いたい場合(例えばユーザーに一度だけダウンロードを許可する場合)、このX-Sendfileはバックグラウンドのphpスクリプトがダウンロード成功を認識できないためできません。
2. NGINXの使い方は?
Nginxはこの機能をデフォルトでサポートしており、追加のモジュールの読み込みを必要としません。 実装が少し異なり、送信すべきHTTPヘッダーはX-Accel-Redirectです。 さらに、設定ファイルで以下の設定を行う必要があります
ログインが見えます。
内部とは、このパスがNginx内でのみアクセスでき、ブラウザから直接アクセスできないことで不正ダウンロードを防ぐことを意味します。
3. PHPプログラムの使い方?
ログインが見えます。
X-Accel-Redirectヘッダーを追加すると、ユーザーは/game pathのファイルをダウンロードします。 ファイル権限管理も実装されています。
公式文書紹介:
ハイパーリンクのログインが見えます。
先の:
愛、結婚、家族、月の前半+6月18日
次に:
CFはネットワーク全体で初めて自己照準を合わせて1ヶ月間安定化する視点です
関連記事
•
NginxはGzipを使ってウェブサイトのパフォーマンス最適化(チューニング)
•
Nginxウェブサイト HTTPS最適化OCSPバインディング
•
Linuxサーバーはlogrotateに基づいてnginxログをカットします
•
Nginxリバースプロキシ ASP.NET コアはUDS通信を使用します
•
Nginxのリバースプロキシphp-fpmはUDSを使って通信します
•
Nginxは504ゲートウェイのタイムアウトソリューションを発表しました
•
(ブラックリスト)Nginxは国内外のIPへのアクセスをブロックしています
•
モジュールスクリプトの読み込みに失敗しました:JavaScriptのモジュールスクリプトを期待していました
•
Nginxのウェブリソースキャッシュ(CDN)
•
NginxはQUICに基づくHTTP/3プロトコルを有効にしています
閲覧したセクション
簡単な言語/E4A
リソースの共有
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com