Implantação de aplicação C# em VPS: guia passo a passo do início ao fim

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que a VPS é o lugar ideal para sua aplicação C#

\n

O desenvolvimento em C# no ecossistema .NET oferece ferramentas poderosas para criar aplicações web, APIs e microsserviços. No entanto, escrever o código é apenas metade do trabalho. Para que sua aplicação se torne acessível aos usuários, é necessário implantá-la em um servidor. Um Servidor Virtual Privado (VPS) fornece controle total sobre o ambiente, o que é fundamental para um ambiente de produção. Neste guia, percorreremos o caminho do zero até uma aplicação C# totalmente funcional em um VPS rodando Ubuntu. Você aprenderá como instalar o .NET Runtime, configurar o servidor proxy reverso Nginx, iniciar a aplicação como um serviço systemd e garantir sua reinicialização automática.

\n\n

Preparação do servidor e instalação do software necessário

\n

1. Conexão ao VPS e configurações básicas

\n

Após obter acesso ao VPS (endereço IP, nome de usuário e senha ou chave SSH), conecte-se via terminal:

\n
ssh root@seu_IP_do_servidor
\n

Atualize a base de pacotes e instale o curl (será necessário para baixar o .NET):

\n
apt update && apt upgrade -y\napt install curl -y
\n\n

2. Instalação do .NET SDK/Runtime

\n

A Microsoft recomenda instalar o .NET através do repositório oficial. Vamos adicioná-lo e instalar o SDK (para compilação) ou Runtime (apenas para execução). Para um servidor de produção, geralmente o Runtime é suficiente, mas para facilitar a implantação, instalaremos o SDK:

\n
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb\ndpkg -i packages-microsoft-prod.deb\napt update\napt install -y dotnet-sdk-8.0
\n

Verifique a instalação:

\n
dotnet --version
\n\n

3. Instalação do Nginx e Git

\n

O Nginx atuará como proxy reverso, redirecionando as requisições da porta 80 para sua aplicação. O Git será necessário para clonar o repositório:

\n
apt install -y nginx git\nsystemctl enable nginx\nsystemctl start nginx
\n\n

Preparação e publicação da aplicação C#

\n

1. Criação ou clonagem do projeto

\n

Como exemplo, criaremos uma aplicação ASP.NET Core Web API simples diretamente no servidor (em um projeto real, você clonará o repositório):

\n
mkdir /var/www/myapp\ncd /var/www/myapp\ndotnet new webapi --name MyApp\ncd MyApp
\n\n

2. Publicação da aplicação (self-contained)

\n

Para que a aplicação funcione sem o SDK instalado no servidor, publique-a no modo self-contained:

\n
dotnet publish -c Release -r linux-x64 --self-contained true -o /var/www/myapp/publish
\n

A flag --self-contained true inclui todas as dependências do .NET na pasta publish. A alternativa é --self-contained false (requer o Runtime instalado).

\n\n

3. Teste de inicialização

\n

Verifique se a aplicação inicia (por padrão, na porta 5000):

\n
cd /var/www/myapp/publish\n./MyApp --urls "http://0.0.0.0:5000"
\n

Abra no navegador http://seu_IP:5000 — você deverá ver a resposta da API. Pare o processo (Ctrl+C).

\n\n

Configuração do Nginx como proxy reverso

\n

1. Configuração do site

\n

Criaremos um arquivo de configuração para o Nginx:

\n
nano /etc/nginx/sites-available/myapp
\n

Insira o seguinte código (substitua your_domain_or_ip pelo seu domínio ou IP):

\n
server {\n    listen 80;\n    server_name your_domain_or_ip;\n\n    location / {\n        proxy_pass http://localhost:5000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection keep-alive;\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}
\n\n

2. Ativação da configuração

\n
ln -s /etc/nginx/sites-available/myapp /etc/nginx                

Blogs

Book Recommendations