A primeira parte da questão - /var/www/html vs /var/www/html/example.domain/public_html - são apenas duas convenções diferentes sobre onde armazenar o conteúdo do seu site: o primeiro faz sentido quando você tem mais sites, geralmente servidos como VirtualHosts, então o diretório conteria vários sites (por exemplo, /var/www/html/{pub,doc,dev,prod,project1,projectX,...} , que podem conter public_html ); enquanto o segundo sugere que você está atendendo a um site principal, no entanto, nada impede que você adicione alguns VirtualHosts posteriormente a locais diferentes (por exemplo, /var/www/whatever.domain/public_html ).
De outro ponto de vista, a segunda abordagem apenas tenta impedir que você adicione o conteúdo do seu site diretamente a /var/www/html , o que complicaria as coisas caso você desejasse adicionar outro site posteriormente. Adicionar o site a mais uma pasta ( public_html ) sugere que você pode usar a raiz do site ( example.domain ) para armazenar alguns itens relacionados, mas não públicos (por exemplo, example.domain/{resources,backup,SQLite.db,whatever_you_want_at_hand} .
Em relação à segunda parte - nomear os dirs não tem nada a ver com associar nomes de domínio a endereços IP, é para isso que serve o DNS (que geralmente é tratado por um registrador de domínio ou provedor de hospedagem). No caso mais simples, o DNS irá traduzir o seu nome de domínio para o seu endereço IP (fornecido por um ISP ou provedor de hospedagem, ou apenas testá-lo com 127.0.0.1 , localhost resp. Veja como /etc/hosts funciona), no seu servidor um servidor web (Apache, Nginx, ...) irá servir o seu site para quaisquer solicitações incomming. Depois de entender isso, verifique os VirtualHosts.