Estou executando um servidor Windows para compartilhamento de arquivos. Existem cerca de 500 pessoas que desejam receber dados meus. Eu configurei um site FTP no IIS, mas só posso permitir que 50 pessoas se conectem ao mesmo tempo, devido à limitação de capacidade do meu servidor e largura de banda (atualizar o servidor e a largura de banda ou mudar para a nuvem não é uma opção e essas pessoas são não me importo de esperar).
Então estou pensando em fazer assim: cada IP só poderá conectar meu FTP por 1 hora, depois ele será desconectado e bloqueado por 1 hora, para liberar vaga para os demais. Após 1 hora, o mesmo IP pode fazer login novamente por mais 1 hora.
Onde e como posso definir para que isso aconteça? No agendador de tarefas, ou configuração de firewall e IIS, ou software de terceiros, ou talvez scripts no PowerShell?
Responder1
No IIS você pode limitar o número de logins simultâneos. Edite os detalhes do Site e marque a opção;Limitar o número de conexões.
Selecione esta opção para limitar o número de conexões permitidas a um site. Na caixa correspondente, insira o número de conexões às quais deseja limitar o site. O valor deve ser um número inteiro entre 0 e 4294967295 (ilimitado). Definir o número como ilimitado evita a administração constante se suas conexões tendem a flutuar. No entanto, o desempenho do sistema poderá ser afetado negativamente se o número de conexões exceder os recursos do sistema. Restringir um site a um número específico de conexões pode manter o desempenho estável.
Por outro lado, você pode permitir que eles se conectem todos de uma vez e usar um roteador para alocar a largura de banda máxima que você está pronto para fornecer.
As pessoas estão acostumadas com conexões lentas e se adaptam, mas não estão acostumadas a serem bloqueadas após um período de tempo.
Como tal, sugiro limitar o número de conexões ou permitir todas elas, mas não usar script para banir o usuário, pois isso pode ter um impacto negativo, como cortar um download no meio e o usuário não conseguir se conectar novamente.