I have a website that is load balanced across multiple web servers. Should the IP address/domain of the replica web servers be blocked to the public so Google does not treat them as duplicate content?
Depends on your existing load balancing setup.
Can you tell me the exact setup? Reverse Proxy? DNS Round Robin? Or something else?
Apart from your main domain, how are these replicas accessible via the open web? Sub domains? IPs?
DNS is pointing to a single HAProxy server. HAProxy to a replica IP (replica 1) and a subdomain (replica 2) on a round robin fashion.
<link rel="canonical" href="https://site.com/your-url" />
ACL to route traffic on your replicas through your main domain - https://www.haproxy.com/documentation/haproxy-configuration-tutorials/core-concepts/acls/# Setup allowed hostname
acl host_main hdr(host) -i site.com
# Redirect any non-matching hosts to main domain
http-request redirect code 301 location https://site.com%[capture.req.uri] unless host_main