Согласно моему пониманию вашего вопроса, вы хотите, чтобы 2 сервера работали на разных портах. Вы можете позвонить по номеру cowboy:start_clear/3
дважды, используя другой порт и одинаковые или разные маршруты. Это определенно выполнимо, но, как упоминалось выше, более рекомендуется использовать маршруты пространства имен для разделения приложений (например, /foo/123
и /admin/foo/123
) вместо разных портов, если они используют один и тот же протокол (в данном случае http). Если вам по-прежнему нужны буксирные серверы, это будет что-то вроде:
NormalRoutes = cowboy_router:compile(...),
AdminRoutes = cowboy_router:compile(...),
{ok, _} = cowboy:start_clear(http, [{port, 80}], #{
env => #{dispatch => NormalRoutes}
}),
{ok, _} = cowboy:start_clear(http, [{port, 8080}], #{
env => #{dispatch => AdminRoutes}
}).