O sinalizador backup indica que ele deve ser usado quando o principal não estiver enviando a resposta, a partir do documentação oficial do módulo upstream :
Backup: Marks the server as a backup server. It will be passed requests when the primary servers are unavailable.
Basta remover o sinalizador backup do primeiro servidor, caso contrário, você não está definindo um servidor principal .
upstream myproject {
server 127.0.0.1:8002;
server 127.0.0.1:8003 backup;
}
Por curiosidade, por que você deixaria os dois como backup? O que você está tentando realizar, balanceamento de carga ou capacidade de failover?