Eu tive esse problema algumas vezes antes. A maneira mais fácil de resolvê-lo é certificar-se de que você resolve seu nome de domínio como interno para seus hosts internos. Dependendo do tamanho da sua rede interna e de como você a configurou, existem algumas maneiras de fazer isso:
1.- Quando você tiver apenas alguns hosts internos em sua rede interna, apenas modifique o arquivo "hosts" (suponho que as janelas C: \ WINDOWS \ system32 \ drivers \ etc \ hosts) incluam uma linha para o seu domínio, apontando para o seu endereço do servidor web INTERNAL, ou seja, uma linha como:
3.3.3.3 my.domain
onde "3.3.3.3" é o endereço IP INTERNO para o que você chama de "meu servidor web", geralmente algo como 192.168.0.12; e "my.domain" é o que você chama literalmente de "Meu domínio".
2.- Configurar um servidor de DNS interno que essencialmente faz o mesmo trabalho que o ponto anterior. Isso é muito mais difícil de configurar e você precisa disso quando tiver MUITOS hosts em sua rede interna. Deixe-me saber se você precisar.
A coisa mais importante que você precisa evitar é que os hosts da sua rede INTERNAL resolvam o seu domínio com o seu IP PÚBLICO e, em vez disso, use o seu IP INTERNO PRIVADO.
HTH
Pedro.