Nginx的rewrite之shopex
分类:技术相关评论:0条作者:邋遢猪仔日期:2010-07-24
规则很简单,只有三行。
if (!-e $request_filename) {
rewrite ^(.*)/(.+\.(html|xml|json|htm|php|jsp|asp|shtml))$ $1/index.php?$2 last;
}
其实起作用的就只是蓝色的那一行。
规则很简单,只有三行。
if (!-e $request_filename) {
rewrite ^(.*)/(.+\.(html|xml|json|htm|php|jsp|asp|shtml))$ $1/index.php?$2 last;
}
其实起作用的就只是蓝色的那一行。
一直以来,小张的linux服务器都是我在维护,不过近段时间衡天小张在美国的服务器非常不稳定,原来只是随意的处理了下下,负载降下来了就没再去管,因为最近的事情比较多比较烦,所以也没太多的精力去查是怎么回事。
昨天晚上在San Jose的那台服务器的五分钟负载居然越过了100,把我惹毛了,下定决定要把这个事情解决好,于是查apache请求状态以及分析访问日志,查出的结果很让人吃惊,是wodpress的404页面引起的高负载。
或许,一两个404错误倒没什么,不可能引起这么高的负载。但我们这样打个比方来计算,在安装了wp-super-cache插件的情况下,正常页面访问需要1个CPU单位时间,内存10M,404页面需要消耗的CPU单位时间根据所安装的插件的情况不同,可能需要20个甚至更多,内存30M甚至更多。也就是说wordpress的404消耗的资源是正常访问的20倍以上,从整台服务器来看,高并发wordpress的404可能会导致服务器完全崩溃。所以我得出一个结论,wordpress的404页面成了资源杀手。 继续阅读…
apache的301重定向:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.newphp\.net$
RewriteRule ^(.*)$ http://www.newphp.net/$1
Nginx的301重定向
if ($host != 'www.newphp.net' ) {
rewrite ^/(.*)$ http://www.newphp.net/$1 permanent;
}
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
正则表达式匹配,其中:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
flag标记有:
* last 相当于Apache里的[L]标记,表示完成rewrite
* break 终止匹配, 不再匹配后面的规则
* redirect 返回302临时重定向 地址栏会显示跳转后的地址
* permanent 返回301永久重定向 地址栏会显示跳转后的地址
一些可用的全局变量有,可以用做条件判断(待补全) 继续阅读…
location / {
rewrite ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^(.*)/article-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2 last;
rewrite ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^(.*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^(.*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3 last;
}
近期评论