MonoとNginxを使用するLinuxマシンで実行されるhttpsASPMVC2Webサービスがいくつかあります。
ASP MVCの出力キャッシュ機能で動作するように構成するにはどうすればよいですか?
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
[OutputCache(Duration=10)]
public ActionResult Index()
{
return View();
}
}
}
Webサービスを実行しているのと同じマシンにキャッシュを保存したいと思います。
この例にあるコードの多くを使用して、proxy_cacheを含め、同じマシン上の別のポートにリダイレクトして元のリクエストを実行するようにnginx構成を調整しようとしました。しかし、私はそれを機能させることができませんでした。
これが私が持っているものです:
proxy_cache_path /usr/local/nginx/proxy_temp/ levels=1:2 keys_zone=cache:10m inactive=10m max_size=250M;
proxy_temp_path /usr/local/nginx/proxy_temp/tmp;
server
{
listen 443 ssl;
server_name myserver.com;
ssl_certificate /home/ubuntu/ssl/nginx_https.pem;
ssl_certificate_key /home/ubuntu/ssl/nginx_https.key;
location /
{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass https://127.0.0.1:4430;
proxy_cache cache;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
}
}
server
{
listen 4430 ssl;
root /var/www/mywebpage/;
ssl_certificate /home/user/ssl/https.pem;
ssl_certificate_key /home/user/ssl/https.key;
location /
{
index index.html index.htm default.aspx Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
}
}
行を追加すると:
proxy_ignore_headers Cache-Control;
その後、キャッシュは機能しますが、すべてのキャッシュを開始します。MVCアプリでOutputCache属性でマークされたメソッドのみをキャッシュしたいのですが、Nginxキャッシュを適切に構成して処理する方法がわかりません。
NginxキャッシングシステムをMonoで実行されているASPMVCアプリの出力キャッシュ属性と結合する適切な方法は何ですか?