Nginx kann höchstens eine Überlastung des Systems verhindern, aber nicht, dass durch den DDoS-Angriff einfach alle möglichen Verbindungen dicht gemacht werden. Es ist also kein brauchbarer DDoS-Schutz. Mit cloudflare hab ich noch nicht gearbeitet, aber laut Aussagen in diversen anderen Foren ist es auch kein brauchbarer DDoS-Schutz.
Du brauchst also etwas, womit du dafür sorgen kannst, dass der Traffic der Angreifer-IPs nicht durchkommt. Du kannst natürlich manuell die IPs in der Firewall blocken, aber das macht nur Sinn, wenn das angreifende Botnet nicht sonderlich gross ist oder die IPs alle aus wenigen bestimmten IP-Ranges kommen, die nicht von deinen normalen Usern verwendet werden.
Sonst kannst du dich natürlich auch mal an den Support deines Hosters wenden und nachfragen, ob evtl. dort eine Infrastruktur zur Verfügung steht, mit der sie den DDoS-Angriff unterbinden können. Gute Hoster haben entsprechende Möglichkeiten.
Tipp: Die meisten DDoS-Angriffe auf Webserver sind ziemlich lame. Die angreifenden Hosts sind häufig an ihrem User-Agent oder ganz speziellen Requests zu erkennen. Dadurch kann man dann einfach mit einer Rewrite-Regel (sollte beim IIS mit ISAPI_Rewrite umsetzbar sein) dafür sorgen, dass der Server nicht auf diese User-Agents oder diese Requests reagiert oder höchstens einen HTTP-Error-Code sendet (z.B. ein Redirect auf die IP, von der der Request kommt). Dadurch bekommt man dann erstmal wieder die Ressourcen frei und etwas Last vom Server. Ich bin allerdings kein Windows-Admin und kann dir daher diesbezüglich bei der praktischen Umsetzung nicht weiterhelfen. Über Google findet sich aber bestimmt was zu IIS und Rewrites. Eine Log-Analyse wirst du ja hoffentlich hinbekommen und wenn es sich um leicht erkennbare Angriffsrequests handelt, ist das evtl. eine Lösung für dich.
Und sonst hilft: VServer mit Linux und möglichst viel Inklusiv-Traffic mieten oder eine Linux-VM einrichten, wenn du mindestens 2 IPs für deinen Server zur Verfügung hast, so dass die VM eine eigene IP bekommen kann. Domain auf diesen Server oder die VM schalten. Portforwarding zwischen Linux- und Windows-Server einrichten. Linux-Server mit entsprechenden Tools ausstatten, z.B. so:
DDoS Protection: APF, BFD, DDoS and RootKit Utilities Und zu guter Letzt dafür sorgen, dass dein Windows-Server auf Port 80 nur noch Verbindungen akzeptiert, die vom Linux kommen.