我在ubuntu 14.04上使用Nginx版本1.6.2
我试图在配置文件中输入limit_conn和limit_req,引用nginx documentation.
Nginx在没有limit_conn和limit_req选项的情况下运行良好.
以下是带有日志消息的Nginx配置的测试用例.
我不知道我的代码有什么问题.
案例1 – 完整配置
http {
...
include /etc/Nginx/sites-enabled/*;
...
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
...
}
/etc/Nginx/sites-enabled/service.conf
server {
...
location / {
limit_conn conn_limit_per_ip 30;
limit_req zone=req_limit_per_ip burst=5 nodelay;
...
}
...
}
日志消息
unknown limit_req_zone "req_limit_per_ip" in /etc/Nginx/sites-enabled/service.conf
http {
...
include /etc/Nginx/sites-enabled/*;
...
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
...
}
/etc/Nginx/sites-enabled/service.conf
server {
...
location / {
limit_conn conn_limit_per_ip 30;
...
}
...
}
日志消息
the size 10485760 of shared memory zone "conn_limit_per_ip" conflicts with already declared size 0 in /etc/Nginx/Nginx.conf
http {
...
include /etc/Nginx/sites-enabled/*;
...
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
...
}
/etc/Nginx/sites-enabled/service.conf
server {
...
location / {
limit_req zone=req_limit_per_ip burst=5 nodelay;
...
}
...
}
日志消息
unknown limit_req_zone "req_limit_per_ip" in /etc/Nginx/sites-enabled/service.conf
http {
...
include /etc/Nginx/sites-enabled/*;
...
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
...
}
/etc/Nginx/sites-enabled/service.conf
server {
...
location / {
...
}
...
}
日志消息
[OK] - Nginx reloaded well
情况5 – 删除limit_req_zone和limit_req
http {
...
include /etc/Nginx/sites-enabled/*;
...
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
...
}
/etc/Nginx/sites-enabled/service.conf
server {
...
location / {
limit_conn conn_limit_per_ip 30;
...
}
...
}
日志消息
the size 10485760 of shared memory zone "conn_limit_per_ip" conflicts with already declared size 0 in /etc/Nginx/Nginx.conf
案例6 – 删除limit_conn_zone和limit_conn
http {
...
include /etc/Nginx/sites-enabled/*;
...
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
...
}
/etc/Nginx/sites-enabled/service.conf
server {
...
location / {
limit_req zone=req_limit_per_ip burst=5 nodelay;
...
}
...
}
日志消息
unknown limit_req_zone "req_limit_per_ip" in /etc/Nginx/sites-enabled/service.conf