我刚在我的电脑上执行了一个基本的DDOS:
websocket-bench -a 2500 -c 200 wss://s.example.com
让我非常沮丧的是我的服务器崩溃了!WS通过连接到我的nginx代理来工作:
location / {
proxy_pass http://sock;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 60;
}
upstream sock {
server 127.0.0.1:1203 fail_timeout=1s;
}
在端口上的服务器上本地
1203
是
ratchet
. 棘轮的设置是我允许任何连接
onMessage
执行身份验证,如果无效,则关闭连接。
我也尝试过通过在第一个连接上传递头来进行身份验证,如果无效,套接字将关闭,但这一点都没有帮助,nginx仍然达到100%的资源,然后崩溃。
我应该分析什么来防止这些碰撞?
当将上游更改为另一个关闭端口(即禁用它)时,服务器仍会崩溃。