apache 改 nginx 学习总结

Apache与Nginx的优缺点比较

1、nginx优点:效率高

反向代理,负载均衡

轻量级,同样起web服务,比apache占用更少的内存及资源

nginx只适合静态和反向。

Nginx选择了epollandkqueue作为开发模型.

最高能支持50,000个并发连接数

apache的优点:稳定

适合做动态请求

rewrite,比nginx的rewrite强大

最高支持5000最有最大并发连接数

抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能

最核心的区别在于apache是同步多进程模型,一个连接对应一个进程,在进程的切换等方面开销很大;nginx是异步的,多个连接(万级别)可以对应一个进程

Apache配置文件:

JkMount:

JKMountdwrservicesloadbalancer//所有以services结尾的请求转发给loadbalancer

JKMount/*/services/*loadbalancer//所有包含services的请求转发给loadbalancer

Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

sub_filter一行代码前面是需要替换的内容,后面单引号内是替换成的内容。可以用在http,server,location模块中。主要作用就是查找替换文件字符。

Nginx配置文件

location

基本语法:location[=|~|~*|^~]/uri/{…}

=严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。

~为区分大小写匹配(可用正则表达式)

~*为不区分大小写匹配(可用正则表达式)

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

^~如果把这个前缀用于一个常规字符串,那么告诉nginx如果路径匹配那么不测试正则表达式。

Location语法语法:location[=|~|~*|^~]/uri/{…}

注:

1、~为区分大小写匹配

2、~*为不区分大小写匹配

3、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

Root:

location/i/{

root/spool/w3;

}

请求"/i/top.gif"将会返回"/spool/w3/i/top.gif".

Ssi:

一个静态化的页面中,需要嵌入一小块实时变化的内容

Ajp:

这是一个Nginx的模块,用来使用Ajp协议连接后端的Tomcat.

location^~/bd/{

ssion;

ajp_keep_connon;

ajp_passajp://192.20.34.122:8001;

}

Alias和root的区别

location/img/{

alias/var/www/image/;

}

#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件

location/img/{

root/var/www/image;

}

#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件

proxy_pass反向代理设置

用法location/{

proxy_passhttp://192.20.34.144:8099;

}

负载均衡策略

Nginx提供轮询(roundrobin)、用户IP哈希(clientIP)和指定权重3种方式。

默认情况是轮询。

ip_hash来指定IP哈希

upstreambackend{

ip_hash;

serverbackend1.example.com;

serverbackend2.example.com;

server.backend3.example.com;

}

weight来指定权重

upstreambackend{

serverbackend1.example.com;

serverIPweight=4;

}

serverIPdown;(down表示单前的server暂时不参与负载)

serverIPweight=2;(weight默认为1.weight越大,负载的权重就越大)

serverIPbackup;(其它所有的非backup机器down或者忙的时候,请求backup机器)

nignx限制了post请求大小限制:默认的最大请求body大小为8m,修改设置client_max_body_size=100m;

相关推荐