DreamHost VPS 上的 Nginx 配置

DreamHost VPS 上的 Nginx 配置

我在 Dreamhost VPS 上的 nginx 上启动并运行了我的网站。太棒了。我想通过在站点范围的 nginx conf 文件 (/dh/nginx/servers/httpd-psxxxxxx/nginx.conf) 的 http 块中添加以下内容来限制每个 IP 的连接数:

limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn limit_per_ip 50;

重新加载 nginx 并且一切运行正常。

当服务器重新启动时,nginx 无法启动。我不得不再次转到 nginx 文件,注释掉有关限制每个 IP 的连接数的两行,重新加载 nginx,然后返回并再次取消注释这两行,然后重新加载 nginx。之后一切都正常了。

如果我在服务器重启后尝试手动重新加载 nginx,我会收到以下错误消息:

webserver... nginx: [emerg] zero size shared memory zone "limit_per_ip"
failed!

我做错了什么?我只想防止单个 IP 占用所有连接并导致 VPS 上的 RAM 超载,从而触发重启。

答案1

问题在于,您为区域命名addr,但随后将其称为limit_per_ip,而这并不是您选择的名称。

在指令中将区域名称从 更改为addr,或者在指令中将区域名称从 更改为。limit_per_iplimit_conn_zonelimit_per_ipaddrlimit_conn

相关内容