Deploy ASP.NET App on Linux with NGINX

R M Shahidul Islam Shahed
3 min readAug 5, 2023

Deploying an ASP.NET Core application on a Linux server with NGINX as the reverse proxy is a common approach to host web applications built using the ASP.NET Core framework. ASP.NET Core is a cross-platform framework that allows developers to build and run applications on various operating systems, including Windows, macOS, and Linux. NGINX, on the other hand, is a high-performance web server and reverse proxy that is known for its efficiency and reliability.

Deploy ASP.NET Core on Linux with NGINX

Deploying an ASP.NET Core application on Linux with Nginx involves a few steps. Here’s a high-level overview of the process:

Step 1: Prepare the Linux Server

  • Set up a Linux server with your preferred distribution (e.g., Ubuntu 20.04 LTS).
  • Install the .NET Core Runtime on the server.
  • Install Nginx on the server.
sudo dpkg -i packages-microsoft-prod.deb

sudo apt update
sudo apt install apt-transport-https
sudo apt install dotnet-sdk-6.0


sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-7.0

Step 2: Build the ASP.NET Core Application

  • Open the terminal or command prompt on your local machine.
  • Navigate to your ASP.NET Core project’s root directory.
  • Run the following command to publish the application:
dotnet publish -c Release -r linux-x64 --self-contained true
  • This will create a self-contained build of your application in the bin/Release/netcoreapp3.1/linux-x64/publish folder (replace netcoreapp3.1 with your target framework version).

Step 3: Install Nginx

  • Install Nginx on the Linux server using the package manager for your distribution (e.g., apt-get install nginx for Ubuntu).
sudo apt update
sudo apt install nginx
systemctl status nginx

Step 4: Configure Nginx

  • Create an Nginx configuration file for your ASP.NET Core application in the /etc/nginx/sites-available