Conforme o requisito para a nossa plataforma, cada site será auto-hospedado juntamente com as configurações de DNS, tornando o site ao vivo no domínio reservado, configurando o Nginx para cada domínio e subdomínio.
Precisamos ter configurações de hosts virtuais dinâmicos para o Nginx, então criamos três opções, mencionadas abaixo.
Precise de sugestões sobre qual delas será a escolha certa, já que nossa base de sites está crescendo com 30 a 40 novos sites por dia e já existem mais de 2000 websites registrados na plataforma.
Qualquer outra opção que não seja essa também será considerada.
Mass Virtual Hosts Configurations
Isso pode ser alcançado tornando server_name
dinâmico usando regex.
Prós:
- Arquivo único, hosts virtuais únicos.
- Não é preciso recarregar o Nginx para cada novo registro de domínio.
- Pode incorporar qualquer número de domínios.
Contras:
- Pode levar a um ataque DDoS se alguém descobrir que o servidor está processando qualquer solicitação de domínio que chegar a ele.
- Pode diminuir a resposta, pois toda consulta de banco de dados de solicitação será executada para verificar se o domínio / subdomínio existe com a plataforma.
Formas de superar o problema:
- O armazenamento em cache, como o Memcache ou o Redis, pode ser usado para armazenar em cache todos os domínios e subdomínios, portanto, haverá poucas consultas ao banco de dados para verificar a existência do domínio e do subdomínio (somente em caso de falha do cache)
- Usando o Cloudflare, que pode nos ajudar na prevenção de DDoS.
- O Nginx também pode ser configurado para bloquear solicitações de determinados IPs que enviam solicitações com muita frequência.
- Determinados endereços de IP e bots responsáveis por qualquer tipo de ataque também podem ser bloqueados usando configurações ruins de bloqueadores de bots.
Individual Virtual Hosts file configurations
Um script, que ao receber uma solicitação para o novo domínio, criará hosts virtuais em um arquivo separado, disponibilizará para o Nginx, ativará e recarregará o Nginx.
Prós:
- Hosts virtuais separados para cada novo domínio registrado.
- Permite que apenas domínios registrados sejam processados.
Contras:
- É necessário acionar o script para cada novo domínio registrado, que será executado como usuário sudo / usuário root
- Pode levar a mais de 1000 arquivos que precisam ser carregados pelo Nginx e processados.
- Para cada novo host virtual, o Nginx precisa ser recarregado.
- O gerenciamento e o gerenciamento de solicitações podem se tornar um incômodo se houver muitos domínios registrados.
Formas de superar o problema:
- Em vez de vários arquivos, use um único arquivo para todos os hosts virtuais.
Single File multiple hosts configurations
Um script, que ao receber uma solicitação para o novo domínio, anexará novos hosts virtuais no único arquivo usado pelo Nginx e recarregará o Nginx.
Prós:
- Hosts virtuais separados para cada novo domínio registrado.
- Permite que apenas domínios registrados sejam processados.
- Reduz o número de arquivos para todos os hosts virtuais para um.
Contras:
- O arquivo pode ficar pesado devido a muitas entradas de hosts virtuais.
- Pode retardar o processamento do Nginx devido a vários hosts virtuais dos quais procurar.
- Para cada novo host virtual, o Nginx precisa ser recarregado.
Formas de superar o problema:
- Não há outra solução além de ter hosts virtuais em massa.