Articles of 静态内容

nginx hackery:每X请求改变图像文件

让我先描述一下我想要做的事情。 我在一个名为/images/*.(jpg|gif|png|blah blah |)的目录中有一堆照片。 现在说这些图像embedded在一个HTML页面,我真的不在乎哪个图像或其embedded的位置。 对于同一图片文件(如果可能的话)的每个第10个请求,或者任何想要显示固定图片的图片(例如trollface.jpg)。 而已! 我search了一下,但我甚至不知道我在找什么。 重写可能会有所帮助,但这是一个永久的事情。 这需要做一些事情。 我听说perl脚本可以用于nginx。 我不能写一个nginx模块(尽pipe我勇敢地查找了文档,然后放弃了) 在你问“但是你为什么不在申请中做,小白?”之前。 这是一个静态文件唯一的服务器。 关键是不要执行任何二进制文件。

Apache在VirtualHost中提供静态文件

我有以下的VirtualHostconfiguration。 <VirtualHost *:80> ServerName myservername.website <Location /> ProxyPass http://localhost:5000/ ProxyPassReverse http://localhost:5000/ </Location> </VirtualHost> 目前, ProxyPass应用程序正在为/ var / www / static生成一系列静态文件。 我宁愿Apache服务于此。 我不知道该怎么说 – “当接收到/ static的请求,然后从/ var / www / static在文件系统上提供”。 我该怎么做呢?

如何服务一个巨大的静态和预生成的网站?

我目前的网站项目有以下特点: 一个网站,基本上是一个只读的信息存档。 访问者不能做任何互动操作。 该网站的所有页面(目前大约15k)都是预先生成的HTML文件和在另一台机器上创build的graphics。 这种方法背后的动机是:由于没有dynamic处理,没有数据库,所以几个networking安全方面的复杂性要低得多。 除此之外,由于整个网站是一个大型的单个caching,为静态文件提供服务,所以希望能够获得良好的性能(换言之,降低运行成本)。 但是,我低估了将大量文件保存在less量目录中的性能影响。 目前,网站的url直接映射到文件系统上预先生成的目录结构。 例如,地址domain.com/categoryA/…映射到包含大量HTML页面的目录webroot/pages/categoryA/… ,并且随着添加的每个附加文件,文件读取变得越来越慢到那个目录。 我怎么能解决这个问题? 是否有任何Web服务器或服务器端技术,尤其是解决服务大量静态页面的问题? 一个SEO友好的url结构应该被保留。 除此之外,我有任何build议。

在本地服务http内容文件,而不是外部服务器

当从不同的内容源构build我们的网页时,可能需要从外部服务器获取一些图像(例如,当合并RSS源时),这可能不像我们自己的数据中心那样快速或连接不上。 我想有一种方法分别复制代理文件到我们的网站上运行的服务器地址,以防止外部服务器的负载可能改变文件名,以隐藏图像是dynamic生成的事实。 例如打开下面的url http://domain.de/content/query?file=foo/nr_1.gif 成这样的东西: mydomain.net/static/domain.de/query_3fresource_3dfoo_2fnr_5f1.gif 这应该兑现etags,如果修改,因为更改过期标头,使文件静态和可caching,无论原始服务器说什么。 我想我可以使用清漆和另一个Web服务器来构build这样的东西,但也许有一个解决scheme已经可用。 这可能是CDN的一部分,但是我并不期望有一个真正的CDN的必要性,因为我们没有很多来自其他国家的访问者

分离高stream量网站上的dynamic和静态内容

我正在尝试增加我的网站的容量,这个容量已经超出了我现在的networking服务器能够处理的范围。 该网站托pipe在一个专用的Web服务器(Litespeed)和一个专用的数据库服务器上。 它每天接收超过18万人次的访问量,每天从网站上下载100,000次。 该站点基于PHP / MySQL,承载了超过200GB的用户生成的上传/文件共享。 对于每个上传,我们将主/下载文件与预览一起存储。 这可以是一个简短的MP3文件,一个简短的MP4video(转换为FLV预览)和图像(JPG)之间的几个其他格式,通常有一个缩略图和更大的图像预览。 我们也有一个20GB的附件论坛。 所有dynamic,下载/静态内容托pipe在Web服务器上,全天负载为20,瓶颈是磁盘等待和CPU(双5410)。 我的主机build议镜像Web服务器前面的一个硬件负载平衡器,这意味着保持更大,更慢的磁盘 – 或者,运行一个Web服务器的dynamic网页与更快的磁盘和移动所有静态内容,缩略图/预览和下载运行nginx的专用静态服务器。 这对服务图像预览效果不错,但是所有下载都是通过Web服务器上的PHP脚本dynamic提供的,Mp3和flv预览stream也是如此。 我看不出如何从下载/stream媒体内容中获得任何好处,因为我认为Web服务器仍然承受着沉重的负担,只有JS,CSS和预览图像将直接从静态服务器提供。 他们还build议build立一个私有云; 在每个服务器上都有一个虚拟Web服务器和负载平衡器。 有人可以解释一下在这种情况下如何最好地进行优化,如果需要的话可以在未来扩大规模。 其他信息:我们的MP3文件不是大文件(350-400KB),FLV文件高达10MB,但其他一些内容,如rar / zip文件可以达到30MB,平均约10MB。 谢谢

多个Web服务器提供相同的静态内容

我为静态内容创build了一个子域 ,以便能够通过多个负载平衡的Web服务器更有效地服务它。 这个静态内容会自动更新 ,每天大约1k个文件。 现在,我使用rsync以主/从方式更新服务器,但由于内容数量越来越多,100k +文件需要越来越多的时间,并且在主服务器和从服务器上都增加了I / O负载 。 我不能使用我在提高rsync性能问题上提出的解决scheme,因为我无法知道哪些文件被修改而没有stat所有这些问题,并且不能解决增加的I / O成本问题 。 我也必须处理文件删除。 我想在奴隶上使用诸如ar / o NFS之类的东西,但是这可能会在某种程度上挫败负载均衡效果,并且造成了无偿的SPOF 。 顺便说一句,服务器运行AIX,但我也有兴趣在一个更通用的上下文解决scheme。

网站部署 – pipe理用户上传的内容?

我是一个贸易程序员,“服务器pipe理员”由公司的必要性。 我们正在倾倒旧的痛苦的“通过FTP上传的更新站点”的部署方式。 让web服务器将最新的代码库从版本控制检查到一个文件夹中,并且使用“current”符号链接指向最新的签出(通过更改符号链接可以轻松地回到旧版本)似乎是我们想要的方式走。 但是我有一个问题:处理用户上传的内容的最佳做法是什么? 这东西不是版本控制。 我有几个想法来处理这个问题,但是聪明的,被接受的做法是什么?

Apache2 + PHP静态目录

我安装了Apache2和PHP5。 我的DocumentRoot是/ var / www /。 所有的.php和.html文件都以/和其子目录的forms提供。 但是,当我要求,说, .png图像我得到了Forbidden通知。 我想为静态内容分派特定/static/目录。 我应该如何编辑Apache的configuration文件才能从/static/查看静态内容?

当使用gzip提供静态文件时,强制Nginx发送Content-Length标题

我们正在运行Nginx 0.7.65 [-1ubuntu2.3]。 我刚刚注意到,当使用alias指令和gzip on提供本地静态文件gzip on , Content-Length头不会被发送。 由于它是从本地文件系统提供文件,因此获取文件长度不会有任何问题。 我如何强制Nginx发送一个Content-Length头文件?

Nginx位置块 – 只匹配实际的文件

我有以下的nginxconfiguration: server { listen 8080; root /site_root/web; index index.html; server_name www.mysite.com; location / { try_files $uri @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /app.php/$1 last; } # add headers to static files location ~* \.(?:ico|css|js|gif|jpe?g|png|svg|woff|ttf|eot)$ { expires 365d; add_header Pragma public; add_header Cache-Control "public"; } location ~ \.php { fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param PATH_TRANSLATED […]