目录
*Nginx与Tomcat配置
属性 |
Nginx |
Tomcat |
版本 |
1.14.2 |
Tomcat7 |
主机 |
192.168.1.XXX |
192.168.1.XXX |
端口 |
18080 |
8080 |
项目名称 |
xht |
xht |
Nginx初始化限流20MB
模板一
http{
#限流20MB
#limit_conn_zone $binary_remote_addr zone=one:20m;
#限流20MB,每秒允许处理1000个请求
limit_req_zone $binary_remote_addr zone=perip:20m rate=1000r/s;
server {
location /xht {
root html;
index index.html index.htm;
limit_req zone=perip;
proxy_pass http://192.168.1.111:8080/xht;
}
}
}
模板二
http {
# 总限流20MB 1000次/秒
limit_req_zone $binary_remote_addr zone=totalLimit:20m rate=1000r/s;
# 设置5MB用于图片上传,限制连接个数
limit_conn_zone $binary_remote_addr zone=uploadLimit:5m;
server {
location /xht {
root html;
index index.html index.htm;
#总流量限制和突发限制
limit_req zone=totalLimit burst=1000 nodelay;
proxy_pass http://192.168.1.111:8080/xht;
}
# 附件上传
location /uploadAttach.do{
# 限制每个IP只允许1个并发连接
limit_conn uploadLimit 1;
# 每个连接上传流量限制
limit_rate 1024k;
}
}
}
模板三
http {
# 总限流20MB 1000次/秒
limit_req_zone $binary_remote_addr zone=totalLimit:20m rate=1000r/s;
# 设置5MB用于图片上传,限制连接个数
limit_conn_zone $binary_remote_addr zone=uploadLimit:5m;
# 设置10MB用于高频接口,每秒请求频率
limit_req_zone $binary_remote_addr zone=feqLimit:10m rate=100r/s;
server {
location /xht {
root html;
index index.html index.htm;
#总流量限制和突发限制
limit_req zone=totalLimit burst=1000 nodelay;
proxy_pass http://192.168.1.111:8080/xht;
}
# 附件上传
location /uploadAttach.do{
# 限制每个IP只允许1个并发连接
limit_conn uploadLimit 1;
# 每个连接上传流量限制
limit_rate 512k;
}
# 登录
location /userLogin.do {
limit_req zone=feqLimit burst=100;
}
# 实时位置
location /sendXhyPos.do {
limit_req zone=feqLimit burst=100;
}
# 通知公告
location /getMessage.do {
limit_req zone=feqLimit burst=100;
}
}
}
*Nginx文件上传设置
5MB
http {
# 设置5MB用于图片上传,限制连接个数
limit_conn_zone $binary_remote_addr zone=uploadLimit:5m;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
location /uploadAttach.do {
# 限制每个IP只允许1个并发连接
limit_conn uploadLimit 1;
# 每个连接上传流量限制
limit_rate 512k;
}
}
}
10MB
http {
# 设置10MB用于图片上传,限制连接个数
limit_conn_zone $binary_remote_addr zone=uploadLimit:10m;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
location /uploadAttach.do {
# 限制每个IP只允许1个并发连接
limit_conn uploadLimit 1;
# 每个连接上传流量限制
limit_rate 512k;
}
}
}
15MB
http {
# 设置15MB用于图片上传,限制连接个数
limit_conn_zone $binary_remote_addr zone=uploadLimit:15m;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
location /uploadAttach.do {
# 限制每个IP只允许1个并发连接
limit_conn uploadLimit 1;
# 每个连接上传流量限制
limit_rate 512k;
}
}
}
18MB
http {
# 设置18MB用于图片上传,限制连接个数
limit_conn_zone $binary_remote_addr zone=uploadLimit:18m;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
location /uploadAttach.do {
# 限制每个IP只允许1个并发连接
limit_conn uploadLimit 1;
# 每个连接上传流量限制
limit_rate 512k;
}
}
}
*Nginx高频接口配置[登录、实时位置、通知公告]
50r/s
http {
limit_req_zone $binary_remote_addr zone=feqLimit:20m rate=50r/s;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
# 后台登录
location /login_gis/loginVerify.do {
limit_req zone=feqLimit burst=50;
}
# 移动端登录
location /userLogin.do {
limit_req zone=feqLimit burst=50;
}
# 实时位置
location /sendXhyPos.do {
limit_req zone=feqLimit burst=50;
}
# 通知公告
location /getMessage.do {
limit_req zone=feqLimit burst=50;
}
}
}
100r/s
http {
limit_req_zone $binary_remote_addr zone=feqLimit:20m rate=100r/s;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
# 后台登录
location /login_gis/loginVerify.do {
limit_req zone=feqLimit burst=100;
}
# 移动端登录
location /userLogin.do {
limit_req zone=feqLimit burst=100;
}
# 实时位置
location /sendXhyPos.do {
limit_req zone=feqLimit burst=100;
}
# 通知公告
location /getMessage.do {
limit_req zone=feqLimit burst=100;
}
}
}
150r/s
http {
limit_req_zone $binary_remote_addr zone=feqLimit:20m rate=150r/s;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
# 后台登录
location /login_gis/loginVerify.do {
limit_req zone=feqLimit burst=150;
}
# 移动端登录
location /userLogin.do {
limit_req zone=feqLimit burst=150;
}
# 实时位置
location /sendXhyPos.do {
limit_req zone=feqLimit burst=150;
}
# 通知公告
location /getMessage.do {
limit_req zone=feqLimit burst=150;
}
}
}
200r/s
http{
limit_req_zone $binary_remote_addr zone=feqLimit:20m rate=200r/s;
server {
location /xht {
root html;
index index.html index.htm;
proxy_pass http://192.168.1.111:8080/xht;
}
# 后台登录
location /login_gis/loginVerify.do {
limit_req zone=feqLimit burst=200;
}
# 移动端登录
location /userLogin.do {
limit_req zone=feqLimit burst=200;
}
# 实时位置
location /sendXhyPos.do {
limit_req zone=feqLimit burst=200;
}
# 通知公告
location /getMessage.do {
limit_req zone=feqLimit burst=200;
}
}
}
参考资料
网文参考
Nginx官文
限连:客户端连接限速
http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
参考:
http://www.cnblogs.com/MacoLee/p/6023201.html
http {
#容器共使用10M的来对于IP传输开销
limit_conn_zone $binary_remote_addr zone=one:10m;
server {
location /download/ {
limit_conn one 1; #限制每个IP只能发起一个并发连接
limit_rate 300k; #对每个连接限速300k。
}
}
}
#注意,这里是对连接限速,而不是对IP限速。
#如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。
限流:客户端请求的处理速率
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
http {
limit_req_zone $ binary_remote_addr zone = one:10m rate = 1r/s;
server{
location /upload/{
limit_req zone= one burst = 5;
}
}