without having to use a third-party DNS host that supports DNS ALIAS record types (or ANAME - neither are accepted standards)
Esta sentença não tem sentido. Em ambos os casos mencionados, os tipos de DNS personalizados ALIAS e ANAME são internamente resolvidos em um conjunto de registros A. Assim, do ponto de vista do usuário final, você não está quebrando nenhum padrão. Qualquer cliente tentando se conectar a um nome de host que você configurou com um ALIAS (eu posso falar por DNSimple dado que eu trabalho para eles) retornará a mesma lista de um registro que retornaria o nome de host de destino.
but in this particular situation I can't CNAME the naked domain to username.github.io.
Teoricamente você pode, praticamente você não quer. Por RFC, o CNAME não pode coexistir com nenhum tipo de registro adicional. Isso significa que, se você CNAME o domínio raiz, você sombreará qualquer outro registro associado ao domínio raiz, basicamente quebrando a capacidade do seu domínio raiz para resolver.
If I do this with Apache or Nginx to get www.example.com working as a GitHub Page, does it work and do I break anything like email?
Você pode configurar www.example.com
como CNAME, desde que não precise de nenhum outro registro DNS anexado a esse nome de host. Isto é normalmente ok.
De uma configuração de servidor da web, não há nada que você precise fazer. Se você configurar www.example.com
como um CNAME de username.github.io
, qualquer solicitação para www.example.com
será resolvida para o (s) IP (s) associado (s) a username.github.io
e os servidores da web do GitHub tratarão da solicitação.
Ainda assim, neste caso, você não resolveu o problema do que deseja fazer com o domínio raiz. Neste ponto, a única coisa que você pode fazer é redirecionar o domínio raiz para o www.example.com
hostname.
Os fragmentos de configuração que você mencionou funcionarão dessa maneira.