Lo que tendrías que hacer es que tu aplicación hiciera de "proxy" y cuando recibiera una llamada para uno de esos archivos, hiciera una llamada al servidor interno y le devolviera al cliente lo que ha respondido el servidor interno.
Es decir:
.- El cliente llama la URL
http://www.ipublica.com/miapp/archivo/ficherox.pdf
.- Tu aplicación detecta que esa es una llamada a un archivo de los que estan fuera, así que internamente llama a
http://ipprivada.com/archivo/ficherox.pdf y le envía al cliente lo que le ha respondo la aplicación interna de archivo.
.- El cliente nunca necesita saber si el fichero esta en esa maquina o en otra, así que no hay problemas de IPs.
De todas formas, eso de que los PDF esten en otra maquina por cuestión de "potencia" es un sinsentido, ya que lo que ocupan los ficheros es espacio en disco, y devolverlos los vas a devolver igual, así que consume la misma potencia o, de hecho, así consume más puesto que tiene que hacer doble trabajo para devolverlos. Por seguridad, por falta de espacio en disco... ok, pero por potencia? No tiene sentido.
Nosotros lo hacemos así con algunos archivos, también pdf, y en nuestro caso es por cuestión de seguridad ya que no queremos dar acceso por FTP a los usuarios que generan los PDF al servidor de la aplicación, asi que ellos dejan los ficheros en un servidor público con FTP abierto.
S!
PD: Por si te sirve, una forma de hacerlo es con un filtro, como se explica aquí:
http://www.jroller.com/greeneyed/ent...ent_look_local