O .NET Core é uma estrutura de desenvolvimento multiplataforma de código aberto redesenhada, mantida pela Microsoft e pela crescente comunidade .NET. Com a ajuda do .NET Core, os desenvolvedores podem criar facilmente aplicativos modernos de alto desempenho em todos os tipos de plataformas.
Neste artigo, mostrarei como instalar o .NET Core em uma instância do servidor CentOS 7 e, em seguida, implantar um aplicativo Web do .NET Core funcional.
Pré-requisitos
- Uma nova instância do servidor Vultr CentOS 7 x64. Digamos que seu endereço IP seja
203.0.113.1
. - Um usuário sudo .
- A instância do servidor foi atualizada para o status estável mais recente usando o repositório EPEL YUM .
Adicione o feed do produto .NET ao sistema
Como uma estrutura de desenvolvimento de plataforma cruzada, o .NET Core fornece binários pré-compilados para vários sistemas operacionais. No CentOS 7, você pode configurar um repositório .NET YUM assinado oficialmente executando os seguintes comandos como usuário sudo:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
Instale o .NET SDK mais recente usando o YUM
Com o repositório do .NET YUM, instale o .NET SDK mais recente, incluindo o .NET Core e outras dependências, em sua máquina:
sudo yum update -y
sudo yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1.4 -y
Para confirmar o resultado, você pode criar e executar um aplicativo .NET Core de demonstração “Hello World”:
cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run
O dotnet new console -o helloworldApp
comando criará um diretório nomeado helloworldApp
em seu diretório pessoal e, em seguida, usará o console
modelo para gerar arquivos de aplicativos no diretório recém-criado.
Ao executar o dotnet run
comando, você verá a Hello World!
mensagem no console.
Criar um aplicativo Web .NET Core
Agora, criar e executar um aplicativo .NET Núcleo do tipo razor
. Lembre-se de que “Razor Pages” é um novo modelo de aplicativo do .NET Core MVC projetado para cenários orientados a página:
cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run
Ao executar o dotnet run
comando acima, você vai iniciar um aplicativo web escuta .NET Núcleo em: http://localhost:5000
.
Se você deseja confirmar que o aplicativo Web está em funcionamento, embora esteja em uma instância de servidor sem GUI, ainda é possível abrir um novo console de terminal e entrada curl http://localhost:5000
para visualizar o código-fonte da página inicial do aplicativo Web.
Depois, você pode pressionar CTRL+ Cpara desligar o aplicativo Web .NET Core.
Para materializar seu aplicativo da web, você precisa editar arquivos no diretório do aplicativo. Você pode aprender mais detalhes na página oficial do documento .NET .
Concluindo todas as tarefas de desenvolvimento, é possível usar os seguintes comandos para publicar seu aplicativo da web:
cd ~/myfirstwebapp
dotnet publish
Você pode encontrar o aplicativo Web publicado no ~/myfirstwebapp/bin/Debug/netcoreapp2.0
diretório
(Opcional): supervisor de instalação para manter seu aplicativo Web .NET Core on-line
As falhas do processo acontecem. Para manter seu aplicativo Web on-line, é uma boa idéia ter uma ferramenta de gerenciamento de processos, como Supervisor, para monitorar e reiniciar os processos travados de aplicativos Web.
No CentOS 7, você pode instalar o Supervisor usando YUM:
sudo yum install supervisor -y
Em seguida, você precisa configurar um arquivo de configuração dedicado do Supervisor para seu aplicativo Web:
cd /etc/supervisord.d
sudo vi myfirstwebapp.conf
Preencha o arquivo:
[program:myfirstwebapp]
command=dotnet myfirstwebapp.dll
directory=/home/sudouser/myfirstwebapp/bin/Debug/netcoreapp2.0/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/myfirstwebapp.err.log
stdout_logfile=/var/log/myfirstwebapp.out.log
Salve e saia:
:wq!
Em seguida, você precisa modificar o supervisord
arquivo de configuração padrão para incluir o arquivo de configuração que criamos:
sudo cp /etc/supervisord.conf /etc/supervisord.conf.bak
sudo vi /etc/supervisord.conf
Encontre a última linha:
files = supervisord.d/*.ini
Substitua-o:
files = supervisord.d/*.conf
Salve e saia:
:wq!
Inicie o Supervisor e configure-o para iniciar automaticamente na inicialização do sistema:
sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service
Carregue as novas configurações do Supervisor:
sudo supervisorctl reread
sudo supervisorctl update
Agora, você pode usar o seguinte comando para mostrar o status do aplicativo:
sudo supervisorctl status
A saída terá a seguinte aparência:
myfirstwebapp RUNNING pid 3925, uptime 0:08:45
Em seguida, você pode tentar matar o processo do aplicativo, especificando o pid 3925
:
sudo kill -s 9 3925
Aguarde um pouco e verifique o status novamente:
sudo supervisorctl status
Desta vez, a saída indicará que o aplicativo foi interrompido e iniciado automaticamente:
myfirstwebapp RUNNING pid 3925, uptime 0:00:06
(Opcional): instale o Nginx como um proxy reverso
Para facilitar o acesso dos visitantes, você pode instalar o Nginx como um proxy reverso para passar o tráfego da Web para a porta 5000
.
Instale o Nginx usando o YUM:
sudo yum install nginx -y
Edite o arquivo de configuração padrão do Nginx da seguinte maneira:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo vi /etc/nginx/nginx.conf
Encontre o seguinte segmento dentro do http {}
segmento:
location / {
}
Insira seis linhas de configurações de proxy reverso entre as chaves, como mostrado abaixo:
location / {
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Salve e saia:
:wq!
Inicie o serviço Nginx e defina-o para iniciar na inicialização do sistema:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configurar regras de firewall
Para que os visitantes possam acessar o aplicativo Web .NET Core nas portas 80
e 443
, é necessário modificar as regras de firewall, conforme mostrado abaixo:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Isso completa a configuração do aplicativo. Agora você está pronto para navegar no seu aplicativo Web .NET Core em http://203.0.113.1
.