如何关闭来自未知主机的 haproxy 前端连接?
How can I close haproxy frontend connections coming from unknown hosts?
现在我正在使用 nginx 关闭来自未知主机的连接和 return 444 "no response"
如何使用位于 nginx 前面的 haproxy 实现相同的效果(节省 haproxy 和 nginx 之间的额外步骤)
当前 nginx 配置:
server {
# Close connection for unrecognized hosts (444 no response)
listen 80 default_server;
listen [::]:80 default_server;
return 444;
}
Ejez 你可以接受来自已知 ip 的连接是 haproxy 前端特定 ip 的块连接。
参考码:
- 允许的已知 ip
acl network_allowed src 20.30.40.50 20.30.40.40
use_backend allowed_backend if network_allowed
或
- 仅阻止某些 ip
acl is-blocked-ip src 192.0.2.11 192.0.2.12 192.0.2.18
http-request deny if is-blocked-ip
参考:
这可以使用 "silent-drop"
来实现
acl host_example req.hdr(host) -i example.com
http-request silent-drop if not host_example
https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#4.2-http-request%20silent-drop
https://www.haproxy.com/blog/introduction-to-haproxy-acls/#using-acls-to-block-requests
现在我正在使用 nginx 关闭来自未知主机的连接和 return 444 "no response"
如何使用位于 nginx 前面的 haproxy 实现相同的效果(节省 haproxy 和 nginx 之间的额外步骤)
当前 nginx 配置:
server {
# Close connection for unrecognized hosts (444 no response)
listen 80 default_server;
listen [::]:80 default_server;
return 444;
}
Ejez 你可以接受来自已知 ip 的连接是 haproxy 前端特定 ip 的块连接。
参考码:
- 允许的已知 ip
acl network_allowed src 20.30.40.50 20.30.40.40
use_backend allowed_backend if network_allowed
或
- 仅阻止某些 ip
acl is-blocked-ip src 192.0.2.11 192.0.2.12 192.0.2.18
http-request deny if is-blocked-ip
参考:
这可以使用 "silent-drop"
来实现acl host_example req.hdr(host) -i example.com
http-request silent-drop if not host_example
https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#4.2-http-request%20silent-drop https://www.haproxy.com/blog/introduction-to-haproxy-acls/#using-acls-to-block-requests