Não é nada complicado. Depende apenas da sua definição de "servidor web".
É inteiramente possível executar um "servidor web" em dispositivos tão simples quanto um microcontrolador.
Vamos considerar o que o servidor Web mínimo necessário precisaria fazer. Seria necessário produzir algum texto - nem necessariamente em HTML para um cliente. Seria necessário saber que uma solicitação é uma solicitação e responder adequadamente. Você nem precisaria de conectividade de rede se o seu "cliente" fosse local. Seria um servidor web totalmente inútil.
Seria o servidor da Web equivalente a um desses .
Adicionar conectividade de rede para um cliente (Ethernet é bom, mas não há motivo técnico para você não se conectar a um servidor Web rodando em wifi) e ser capaz de rotear a partir de um cliente seria melhor.
Um ESP8266 de US $ 5 - um microcontrolador barato e mínimo com wifi pode lidar com muito disso, e talvez até com conteúdo dinâmico básico
Eu uso algo assim para o compartilhamento rápido de arquivos usando Python. Ainda é totalmente possível escrever algo assim em um microcontrolador ou até mesmo executá-lo em um telefone.
O conteúdo estático é chato. Adicione linguagens dinâmicas e você precisará começar a pensar em sistemas de pesos mais pesados. Coisas que rodam Linux ou Windows são boas.
Neste ponto, você está falando de roteadores de consumo, pequenos aplicativos usando páginas da Web na interface do usuário e tudo mais.
Um servidor da web nem é um problema complexo e pode ser escrito em cinco linhas de bash e executado no Linux. Agora desgraça ... Mas qualquer sistema que possa executar desgraça pode executar um servidor web.
Uma boa configuração de servidor da Web capaz de lidar com uma determinada carga é um pouco mais complicada.