2016-05-19 7 views
1

Nginxの設定でmimeタイプを拡張しようとしています。シェフのMimeタイプをNginxサーバーに展開

私は原則的に、私ができることを学んだ、どちらかのmime.typesファイルを編集するか、ラthis answerより多くの種類を追加するtypes = {...}include mime.typesに従うことができる設定のhttpブロック内のmime.typesを含めた後にしました。

私はシェフと一緒にNginxを設定しているので、Nginxの設定に含まれているサイト対応のフォルダにテンプレート設定があります。私はnginxの設定ファイルやmime.typesファイルをテンプレート化したくないので、サイト対応の設定ファイルで取得することができると思っています。

上記のリンクされた質問と同様の趣旨で、これを私のサイト対応ファイルに含めて、同じ効果を得ることはできますか?

http { 
    types { 
     # here is additional types 
    } 
} 

私の作業理論は上記のリンクに記載されたブロックが動作している場合、そのようなブロックを追加すると、nginxの設定ファイルでhttpブロックを上書きしないだろうということですが、私は直接typesを追加したかのようにそれを延長しますhttpブロックはnginx.confです。

これは有効な戦略ですか?それとも簡単なことが見逃せませんか?

答えて

1

ドキュメントに明示的には記載されていませんが、nginx型ディレクティブは、継承に関して他のディレクティブと同様に動作するように見えます。

ディレクティブは、現在のレベルで定義されているtypeディレクティブがない場合にのみ、前のレベルから継承されます。

typesディレクティブはブロックレベルでhttp,serverまたはlocationに表示されることがあります。 httpserverまたはlocationコンテキストを含む任意のファイルにあなたの追加とtypesブロックを追加することもできますし(むしろそれらを再定義より)MIMEタイプを拡張するために

しかし、あなたがserverまたはlocationレベルでtypesブロックを追加した場合、システムのデフォルトを失わないように、あなたはまた、同じレベルで別のinclude mime.typesのステートメントを追加する必要があります。あなたのサイトに対応したファイルで

# (1) 
server { 
    # (2) 
    location ... { 
     # (3) 
    } 
} 

あなたのサイトに対応したファイルがserver { ... }ブロック定義が含まれている場合、あなたはタイプが追加される場合がありますが、位置にブロック(1)すでにによってロードされたMIMEタイプを増やすことになりますメインのnginx.confファイル。

あなたはタイプを追加した場合は、(2)の位置でブロックまたは(3)、あなたはまた、再びシステムのタイプにプルするincludeステートメントを追加する必要があります:

server { 
    include mime.types; 
    types { ... } 
    ... 
} 

typesディレクティブがありますdocumented here

関連する問題