Nginx Rewrite 的语法规则

发表时间:2011-11-21 07:01:04 文章分类:apache 阅读:7430
nginx rewrite只是会改写路径部分的东西,不会改动用户的输入参数,因此这里的if规则里面,你无需关心用户在浏览器里输入的参数,rewrite后会自动添加的,因此,我们只是加上了一个?号和后面我们想要的一个小小的参数 ***https=1就可以了。
语法: rewrite regex replacement flag默认: none作用域: server, location, if
This directive changes URI in accordance with the regular expression and the replacement string. Directives are carried out in order of appearance in the configuration file.这个指令根据表达式来更改URI,或者修改字符串。指令根据配置文件中的顺序来执行。Be aware that the rewrite regex only matches the relative path instead of the absolute URL. If you want to match the hostname, you should use an if condition, like so:注意重写表达式只对相对路径有效。如果你想配对主机名,你应该使用if语句。nginx的rewrite语法规则参考:文件及目录匹配[mycode=Ruby] -f和!-f 用来判断是否存在文件 -d和!-d

Nginx Rewrite

发表时间:2011-11-21 06:57:45 文章分类:apache 阅读:20121
/1 Nginx rewrite基本语法Nginx的rewrite语法其实很简单.用到的指令无非是这几个: setifreturnbreakrewrite1.setset主要是用来设置变量用的,没什么特别的2.ifif主要用来判断一些在rewrite语句中无法直接匹配的条件,比如检测文件存在与否,http header,cookie等,用法:
if(条件) {}
- 当if表达式中的条件为true,则执行if块中的语句- 当表达式只是一个变量时,如果值为空或者任何以0开头的字符串都会当作false- 直接比较内容时,使用 = 和 !=- 使用正则表达式匹配时,使用
~ 大小写敏感匹配~* 大小写不敏感匹配!~ 大小写敏感不匹配!~* 大小写不敏感不匹配
这几句话看起来有点绕,总之记住: ~为正则匹配, 后置*为大小写不敏感, 前置!为”非”操作随便一提,因为nginx使用花括号{}判断区块,所以当正则中包含花括号时,则

PV与并发之间换算的算法换算公式

发表时间:2011-09-20 08:10:25 文章分类:apache 阅读:20264
并发连接数 = PV / 统计时间 * 页面衍生连接次数 * http响应时间 * 因数 / web服务器数量PV = 并发连接数 * 统计时间 * web服务器数量/ 页面衍生连接次数 / http响应时间 / 因数解释:统计时间 : pv统计的总时间,单位秒,要计算一天的pv就是86400秒页面衍生连接次数: 一个HTML页面可能会请求好几次http连接,如外部的css, js,图片等,可以估算一下,或者用10,可根据实际情况改变http响应时间: 可以使用1秒或更少,可根据实际情况改变因数: 一般使用5即可,可根据实际情况计算后推出web服务器数量: web服务器数量* "页面衍生连接次数","http响应时间","因数"这三个参数要根据实际情况分析计算后,确定一个适合的值推算一下。单台机器1000并发的情况下,一天是1,728,000的pv(1秒响应,10个衍生连接,因子为5的情况下)======================================================================例子:[color=#008000]保证每天多少PV的并发连接数的计算公式是:并发连接数= PV / 统计时间(一天是86400) * 页面衍生连接次数 * http响应时间 * 因数(5) / web服务器数量保证4千万PV的并发连接数:(40000000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台Web服务器 = 19290连接

安装完apache2.3.12不能访问

发表时间:2011-08-15 08:09:46 文章分类:apache 阅读:3313
今天安装了一下Apache,遇到一个问题,就是安装完了,并且服务启动了,通过浏览器访问却打不开链接apache的版本是:Server version: Apache/2.3.12 (Unix)尝试着关闭iptables:[root@localhost ~]# service iptables stop通过浏览器访问,通过那么可以肯定,是iptables的问题,执行  :[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT[root@localhost ~]# /etc/init.d/iptables save[root@localhost ~]# service iptables restart通过浏览器访问,ok,搞定,在这记录一下

Apache的prefork模式和worker模式

发表时间:2010-01-16 10:31:34 文章分类:apache 阅读:107919
prefork模式这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。[separator]这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。worker模式此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。控制这个MPM的最重要的指令是,控制每个子进程允许建立的线程数的ThreadsPerChild指令,和控制允许建立的总线程数的MaxClients指令。prefork和worker模式的切换1.将当前的prefork模式启动文件改名mv httpd httpd.prefork2.将worker模式的启动文件改名mv httpd.worker httpd3.修改Apache配置文件vi /usr/local/apache2/conf/extra/htt

Apache服务器的优化-模式设置

发表时间:2010-01-16 10:26:05 文章分类:apache 阅读:280971
服务器的优化(MPM: Multi-Processing Modules)apache2主要的优势就是对多处理器的支持更好,在编译时同过使用–with-mpm选项来决定apache2的工作模式。如果知道当前的apache2使用什么工作机制,可以通过httpd -l命令列出apache的所有模块,就可以知道其工作方式:[separator]prefork:如果httpd -l列出prefork.c,则需要对下面的段进行配置:StartServers 5 #启动apache时启动的httpd进程个数。MinSpareServers 5 #服务器保持的最小空闲进程数。MaxSpareServers 10 #服务器保持的最大空闲进程数。MaxClients 150 #最大并发连接数。MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。在该工作模式下,服务器启动后起动5个httpd进程(加父进程共6个,通过ps -ax|grep httpd命令可以看到)。当有用户连接时,apache会使用一个空闲进程为该连接服务,同时父进程会fork一个子进程。直到内存中的空闲进程达到MaxSpareServers。该模式是为了兼容一些旧版本的程序。我缺省编译时的选项。worker:如果httpd -l列出worker.c,则需要对下面的段进行配置:StartServers 2 #启动apache时启动的httpd进程个数。MaxClients 150 #最大并发连接数。MinSpareThreads 25 #服务器保持的最小空闲线程数。

压力测试---webbench

发表时间:2010-01-16 08:25:18 文章分类:apache 阅读:65360
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。1、适用系统:Linux[separator]2、编译安装:tar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make install3、使用: webbench -c 500 -t 30http://127.0.0.1/test.jpg参数说明:-c表示并发数,-t表示时间(秒)4、测试结果示例:Webbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GEThttp://127.0.0.1/test.jpg500 clients, running 30 sec.Speed=3230 pages/min, 11614212 bytes/sec.Requests: 1615 susceed, 0 failed.

压力测试---apache ab压力测试

发表时间:2010-01-16 08:23:08 文章分类:apache 阅读:102463
APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。格式: ./ab [options] [http://]hostname[:port]/path参数:    -n requests     Number of requests to perform    //在测试会话中所执行的请求个数。默认时,仅执行一个请求    -c concurrency Number of multiple requests to make    //一次产生的请求个数。默认是一次一个。    -t timelimit    Seconds to max. wait for responses    //测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。[separator]    -p postfile     File containing data to POST    //包含了需要POST的数据的文件.    -T content-type Content-type header for POSTing    //POST数据所使用的Content-type头信息。    -v verbosity    How much troubleshooting info to print    //设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。    -w              Print out results in HTML tables    //以HTML表的格式输出结果。默认时,它是白色背景的两列宽度