title: Running multiple ASP.NET Core (3.1x/Latest) websites on port 80 with Kestrel
body: <p>I'm using (ASP).NET Core (3.1x), C#, Blazor and Microsoft Kestrel Web-server and I'm wondering if I can run 2 or 3 different websites (domain names) on one Kestrel instance and on port 80. I would really like to use Kestrel as the only web server and not use a proxy server like nginx in front of it.</p>
  <p>I've been googling for an answer for a while now but I can't find an answer to this question. I'm renting colocation server space where I run an Ubuntu 18.04 VPS, and I would really like to run multiple websites on this one VPS, instead of renting multiple VPS's. I am thinking about some sort of routing but I can't figure it out.</p>
  <p>Is there any way to use Kestrel and run different websites on port 80?</p>
  <p><strong>Update - feb 25th 2020</strong></p>
  <p>I've created a <a href="https://github.com/dotnet/aspnetcore/issues/18816#issuecomment-584240215" rel="nofollow noreferrer">Github issue</a> about this, long story short: Use a reverse proxy server like Nginx (for Linux). Only one Kestrel process can run on port 80, and there no good way to host multiple websites with one instance.</p>
  <p><strong>Update - May 4th 2021</strong></p>
  <p>It is now possible with Microsoft's reverse proxy &quot;YARP&quot;, which is a separate Kestrel instance. See my answer below.</p>