2 つの Ghost ブログ サイトにリバース プロキシ サービスを提供するために使用する NGINX サーバーがあります。node
静的コンテンツの場合、サービスをスキップして、NGINX から直接提供されるようにしたいと考えています。かなり簡単なはずですが、ひねりがあります。
以下は、リバース プロキシを設定し、静的コンテンツの例外を提供する構成ブロックです。これは問題なく動作します (注: 二重括弧で囲まれた参照は、使用している 2 つの異なる Ghost サービスの名前に置き換えられています)。
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host:$server_port;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_cache ghost_{{slug}}_cache;
proxy_cache_key ghost$request_uri$scheme;
proxy_pass http://ghost_{{slug}}_upstream;
}
location /assets {
root {{assets_root}};
}
したがって、上記の/assets
ようなリクエストの場合http://example.com/assets/js/doit.js
、上記の構成は一致し/assets
、上で定義したルート ダイレクトに「assets/js/doit.js」を追加します。私が言ったように、この部分は機能し、私が指している場所にはファイルシステムで表される完全な URL パスがあるため機能します (たとえば、assets/js
ファイルdoit.js
を含むディレクトリがあります)。
私が苦労しているのは-そして私はNGINXに非常に慣れていないので、これは簡単だと思う-次のような構成ブロックがある同様の状況です:
location /content {
root {{content_root}};
}
このブロックは、構成と実行の観点からはassets
ブロックと同じですが、この場合、コンテンツに続くURL の部分のみを渡すようにしたいと考えています。したがって、リクエストが次の場合、返されるのは、次のファイルシステムに存在するものです。 http://example.com/content/images/july/foo.jpg
- {{content_root}} +
/images/july/foo.jpg
私が今得ているものの代わりに:
- {{content_root}} +コンテンツ+
/images/july/foo.jpg