标签存档: Apache

在大规模 Puppet 环境中使用 Apache+Passenger 代替 WEBrick

当在一个成百上千台服务器的大规模集群中,部署 Puppet 环境之后,各个 Agent 节点与 Master 之间的同步、检查、通讯就成了瓶颈,会频繁出现连接超时、读取失败等错误。究其原因,由于 Puppet Master 默认使用的 WEBrick 是一个简单的单进程的 WEB SERVER 服务(类似原始的 CGI),因而在大访问量、高并发的情况下就不适用了。所以,要使用性能更好的 WEB SERVER 来提供 Puppet Rails 应用。
继续阅读 »

Linux Kernel 3.0 EXT4与BTRFS对比

EXT4 文件系统大家可能都比较熟悉了,现在流行的 ubuntu 11.04 和 Fedora15 都是默认采用的 EXT4,EXT4 是Linux的第四代扩展文件系统,是 EXT3 的后继版本。Btrfs  被称为是下一代 Linux 文件系统。近年来 EXT2/3 遇到越来越多的扩展性问题,在期待 EXT4 的同时,人们发现了 btrfs,据说它采用了很多先进的文件系统设计,不仅解决了 EXT2/3 的扩展性问题,还让人们看到了下一代文件系统所具有的许多其他特性。

继续阅读 »

Httperf + AutoBech + GnuPlot 构建 WEB SERVER 压力测试系统

Apache ab 可能是最知名,也是最容易使用的一个压力测试工具。但 ab 相对比较简单,做一些轻量级的,或者要求相对宽松的 WEB 压力测试是比较合适的。但碰到复杂环境,或者需要同时测试两台 WEB SERVER (两个环境)进行对比时,ab 就显的力不从心了。并且,在正规的压力测试报告中,还需要对数据结果进行绘图分析。这些,都是 ab 所不具备的。所以,特意研究了一下 Httperf + AutoBech + GnuPlot 测试系统,发现这个测试平台还是非常不错的,测试方法和手段灵活,支持 2 台 WEB SERVER 进行对比测试,并且能够快速方便的生成各个测试项目的统计图表。

继续阅读 »

htpasswd.py

使用 Nginx 做 WEB 基础认证时没有 Apache htpasswd 命令?试试这个 Python 脚本吧!
继续阅读 »

Apache 使用Digest验证

Apache默认使用basic模块验证,都是明文传输,不太安全,所以本文使用Digest来验证,以提高安全性。

继续阅读 »

URL 的长度上限

URL 的最大长度是多少?W3C 的 HTTP 协议 并没有限定,然而,在实际应用中,经过试验,不同浏览器和 Web 服务器有不同的约定:

IE 的 URL 长度上限是 2083 字节,其中纯路径部分不能超过 2048 字节。
Firefox 浏览器的地址栏中超过 65536 字符后就不再显示。
Safari 浏览器一致测试到 80000 字符还工作得好好的。
Opera 浏览器测试到 190000 字符的时候,还正常工作。
Web 服务器:
Apache Web 服务器在接收到大约 4000 字符长的 URL 时候产生 413 Entity Too Large” 错误。

IIS 默认接收的最大 URL 是 16384 字符。

Web优化的14条法则及我们的实际应用

最近,YouMonitor.Us在做Web应用性能优化,在网上发现了文章High Performance Web Sites: The Importance of Front-End Performance,感觉其14条优化法则很实用,操作性很强。因此翻译出来,供大家参考。

继续阅读 »

Apache2.2 缓冲指南

从Apache2.2起,mod_cache和mod_file_cache将不再是试验模块,它们已经足够稳定,可以用于实际生产中了。这些缓冲体系提供了一个强有力的途径来加速原始web服务器(origin webserver)和代理服务器(proxy)的HTTP处理速度。

继续阅读 »

WordPress Rewrite

Apache
在Apache下,利用mod_rewrite来实现URL的静态化。.htaccess的内容如下:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Nginx
下面是一个完整的 vhost 的配置文件

server {
listen 80;
server_name inanu.net www.inanu.net;
location / {
index index.html index.htm index.php;
root /www/wwwroot/inanu.net;
if (-f $request_filename/index.html)
{rewrite (.*) $1/index.html break;}
if (-f $request_filename/index.php)
{rewrite (.*) $1/index.php;}
if (!-f $request_filename)
{rewrite (.*) /index.php;}
}
}