我主要是一个前端开发人员/设计师,但最近,我一直在探索端到端解决方案。昨天,我使用mean stack完成了一个TODO应用程序,现在我想开始探索VPS的部署选项。
也就是说,我被建议使用nginx作为反向代理是为了提供静态资源?不幸的是,我被一些简单的问题卡住了。
静态资源示例是什么?
哪些因素定义了静态资源?
非静态资源的例子有哪些?
最后,是否有我应该注意的奇怪的边缘情况?
在这种情况下,静态资源指的是不使用动态代码生成的资源,这意味着它的内容不会因请求而更改。
图像、JavaScript、CSS等都是这方面的候选。基本上,你为这些资源设置了一个大的缓存时间,你的Nginx服务器可以在磁盘上(或在Redis或类似的东西上)保留一个副本,这样它们就可以在不影响应用服务器的情况下返回到客户端。
在设置较大的缓存时间时,一定要记住使用版本化的文件名。例如,head -image-20140608.png意味着你可以有一个较新的版本,而不用担心旧的版本仍然在缓存中。
静态资源是指不动态生成的资源。
静态资源的一个例子是图像。每个请求都是一样的。它是文件系统上的一个文件,不需要任何处理——你只需告诉nginx按原样发送这个文件给用户。 动态资源的一个例子是特定于请求它的用户的json数据(必须专门为该用户生成)。对于动态资源,这些通常也是您自己的域特定代码执行,对数据库的请求等。
nginx应该提供静态内容的原因是因为它擅长以并行的方式提供这些内容——它就是为此而设计的。
如果你正在使用Ruby/Python/node.js/Java等,你也可以通过这些进程提供静态资源(只需调用File.open()
并开始流式传输数据)-但是它会慢得多,并且也降低了你可以同时服务的动态请求的数量。
- 静态资源是不会频繁更改的资源,除非需要,否则可以存储在客户端的浏览器端,以防止web服务器的负载,并在客户端更快地加载站点。 例如:images, javascript, css
- 动态资源是指web资源中不断变化的内容,主要是特定于用户或项目的页面上不断变化的数据。
- 为了确保你的静态数据减少了服务器上的负载,并确保客户端的快速性能,你需要注意各种服务器特定的配置,如启用压缩js文件,正确渲染图像的标题内容。
当你想改变文件内容时,确保你防止浏览器从缓存中挑选这些静态的旧内容,附上一个时间戳与这些静态资源的url,这将确保更新的资源在需要时加载
静态资源是指不改变且不涉及服务器端代码的资源。
这通常是指图像、CSS,有时还包括客户端Javascript。