我计划将 ASP.NET MVC 网站转换为 ServiceStack Razor,目的是将其托管在 Linux 服务器上。
为网站的静态内容提供服务的最佳解决方案是什么?Nginx 后面的自托管守护进程可以吗,还是我应该使用 Nginx 直接提供服务?使用 Mono FastCGI 有什么好处/坏处?
我计划将 ASP.NET MVC 网站转换为 ServiceStack Razor,目的是将其托管在 Linux 服务器上。
为网站的静态内容提供服务的最佳解决方案是什么?Nginx 后面的自托管守护进程可以吗,还是我应该使用 Nginx 直接提供服务?使用 Mono FastCGI 有什么好处/坏处?
如果您有机会使用 nginx 提供静态文件,那将始终是最有效的选择。
这也是www.servicestack.net对他们的许多Live Demo 所做的。
我同意 myz,并且也这样做,但是您还应该考虑允许缓存这些静态文件以加快客户端的浏览速度并减少服务器上的负载。
在我的 nginx 配置中,我定义了常见的静态类型以直接提供服务(允许浏览器端缓存),然后使用版本查询字符串对这些类型的所有引用进行版本化,以在需要新副本时强制刷新(即 /style.css ?版本=2)
例子:
location ~* \.(htm|html|jpg|jpeg|png|ico|txt|css|js|ico|pdf|gif|ttf|woff|svg|pdf)$ {
#server it directly, but allow caching
expires 30d;
}