Skip to content

DexDevLab/nextjs-proxy-cors

Repository files navigation

Next.js Proxy CORS

Servidor Proxy CORS baseado em Next.js para deploy via Vercel




Este projeto pode ser utilizado para subir um servidor CORS que transmite os headers CORS (e quaisquer outros desejáveis) para a entrada e saída das requisições na forma de um middleware. Ele direciona todas as chamadas de rota de API (diretório /api) para fazerem rota com o Proxy, o qual suprime o caminho original e transfere o endereço de destino a ser acessado com os headers.



  • Gerenciador de Bibliotecas: Yarn
  • Bibliotecas: Para uma lista completa de bibliotecas e dependências nos mais variados escopos, conferir o arquivo package.json.


Documentação adicional pode ser encontrada aqui.



Utilizando o repositório como projeto

Faça um git clone ou o download do repositório, da forma que preferir

git clone https://github.com/dexdevlab/nextjs-proxy-cors.git

Testando a aplicação

1 - Execute yarn dev ou npm run dev do terminal dentro do diretório do projeto. A aplicação irá ser executada na porta 3000 como padrão.

2 - Para realizar o redirecionamento de um site, faça uma requisição GET no seguinte formato: ${server_address}:${server_port}/api?url=${destination_url}. Por exemplo: http://localhost:3000/api?url=https://http.cat/100. Esta requisição devolverá o endereço com os HEADERS pertinentes ao CORS na entrada e na saída, como um bypass.

NOTA: Não foram testados outros métodos de requisição HTTP por não haver necessidade no momento.


Instanciando no Vercel

Você pode inicializar sua própria instância do Servidor Nextjs CORS clicando neste botão:

Deploy with Vercel



Para usar a aplicação, crie um arquivo .env com as seguintes variáveis de ambiente:

Variável Uso
NEXT_PUBLIC_RATE_LIMIT_REQUESTS Quantidade específica de requisições que podem ser feitas em um determinado intervalo.
NEXT_PUBLIC_RATE_LIMIT_INTERVAL O intervalo em segundos em que a quantidade de requisições são redefinidas. Por exemplo, NEXT_PUBLIC_RATE_LIMIT_REQUESTS = 30 e NEXT_PUBLIC_RATE_LIMIT_INTERVAL = 60 significam 30 requisições a cada 60 segundos, no máximo.
NEXT_PUBLIC_RATE_LIMIT_USERS A quantidade de usuários que podem fazer requisições por intervalo. Por exemplo, NEXT_PUBLIC_RATE_LIMIT_INTERVAL = 60 e NEXT_PUBLIC_RATE_LIMIT_USERS = 50 significam um máximo de 50 diferentes usuários requisitando a cada 60 segundos.


v0.0.17-230326

  • Atualização da Documentação

v0.0.16-230326

  • Ajuste na execução de atalhos para correção de página inválida no Vercel

v0.0.15-230326

  • Ajuste na estrutura da documentação
  • Criação de branch específico para documentação

v0.0.14-230326

  • Ajuste de deployment no Vercel
  • Alteração na estrutura da documentação para compatibilidade com Vercel

v0.0.13-230326

  • Ajuste de deployment no Vercel

v0.0.12-230326

  • Implementação de Rate Limit
  • Atualização da documentação
  • Ajuste de rotas para documentação dinâmica

v0.0.11-230325

  • Teste com Middleware de Rate Limit

v0.0.10-230325

  • Atualização da Documentação
  • Restruturação de pastas da aplicação
  • Teste com Middleware de Rate Limit

v0.0.9-230324

  • Atualização da Documentação

v0.0.8-230324

  • Atualização da Documentação

v0.0.7-230324

  • Adição de dependências e testes de execução no Vercel

v0.0.6-230324

  • Adição de Next.js como dependência e mais testes de execução no Vercel

v0.0.5-230324

  • Refatoração e teste de execução

v0.0.4-230324

  • Ajuste para execução direta sem intermédio do Next.js
  • Atualização da Documentação

v0.0.3-230323

  • Criação de variável de ambiente para definir schema HTTP
  • Alteração de saída para erros no Servidor

v0.0.2-230323

  • Ajuste na rota CORS para receber o schema HTTP e manipular exceções

v0.0.1-230323

  • Commit inicial




Se você gostou deste projeto, dê uma estrela.
Para contato, envie um email a: dex.houshi@hotmail.com


Licenciado sob a MIT License.