Home Deploy ASP .NET no Linux [WSL]
Post
Cancelar

Deploy ASP .NET no Linux [WSL]

💻 01 Instalar o .NET Core Runtime no Servidor

1
2
3
4
5
6
7
8
# Baixar o pacote do .NET Core Runtime
wget https://packages.microsoft.com/config...
sudo dpkg -i packages-microsoft-prod.deb

# Atualizar repositórios e instalar o SDK do .NET Core 6.0
sudo apt update
sudo apt install apt-transport-https
sudo apt install dotnet-sdk-6.0

💻 02 Verificar a Versão do Dotnet

1
dotnet --version

💻 03 Instalar o Nginx no Servidor

1
2
3
4
5
6
# Atualizar repositórios e instalar o Nginx
sudo apt update
sudo apt install nginx

# Verificar o status do Nginx
systemctl status nginx

Corrigindo o erro “System has not been booted with systemd as init system”

Se você está seguindo algum tutorial na internet e usou o comando systemd como sudo systemctl start.

Para sua surpresa, o comando resulta em um erro como este:

System has not been booted with systemd as init system (PID 1). Can’t operate.{: .prompt-danger }

Razão: Seu sistema Linux não está usando o systemd {: .prompt-tip }

Comando SystemdComando Sysvinit
systemctl start service_nameservice service_name start
systemctl status service_nameservice service_name status
  

Basta usar o comando equivalente do Sysvinit para corrigir, no nosso caso aqui:

1
2
service nginx start
service nginx status

💻 04 Publicar a Aplicação a partir do VS Code

1
2
3
# Publicar a aplicação
dotnet publish -c Release -r linux-x64 --self-contained true
cd /var/www/RealTimeChatApp

💻 4.1 Copiar Arquivos para o Servidor

1
2
# Substituir user, server_ip e /path/to/destination pelos valores apropriados
scp -r bin/Release/netcoreapp3.1/linux-x64/publish/* user@server_ip:/path/to/destination

💻 05 Configurar o Nginx

1
2
# Editar o arquivo de configuração do Nginx
nano /etc/nginx/sites-available/myapp
1
2
3
4
5
6
7
8
9
10
11
12
13
server {
    listen 80;
    server_name mydomain.com;

    location / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

💻 06 Substituir mydomain.com pelo seu domínio ou endereço IP do servidor.

1
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

💻 08 Gerenciar o Processo do Nginx

Para Systemd

1
2
3
4
5
6
sudo systemctl stop nginx
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl disable nginx
sudo systemctl enable nginx

Para Sysvinit

1
2
3
4
5
6
sudo service nginx stop
sudo service nginx start
sudo service nginx restart
sudo service nginx reload
sudo service nginx disable
sudo service nginx enable

Parabéns! Sua aplicação .NET Core agora está configurada e sendo servida pelo Nginx. Certifique-se de substituir todas as informações específicas do servidor pelos valores corretos.

Esta postagem está licenciada sob CC BY 4.0 pelo autor.

Configurando o container de DI no .NET Core +

Algoritmos e estrutura de dados com C#