Nosso WHATSAPP

1.1.1. Premissas 

Como premissa para instalação do dotnet é necessario realizar a instalação do apache e ativação de alguns modulos, além de outro pacotes conforme apresentado abaixo:

 # yum update -y
# yum install httpd wget curl  -y

1.1.2. Configuração do apache

Devemos remover o site default configurado no apache, utilizando o comando abaixo;

# rm -rf /etc/httpd/conf.d/*

Configuração do novo arquivo virtualhost para publicação da API

# vi /etc/httpd/conf.d/dricapi.conf

Adicionar o conteudo abaixo:

<VirtualHost *:*>
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
 

<VirtualHost <seudominio.local>:80>
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
    ServerName <Seudominio.local>
    ServerAlias <Seudominio.local>
    ErrorLog ${APACHE_LOG_DIR}api-error.log
    CustomLog ${APACHE_LOG_DIR}api-access.log common
</VirtualHost>

Vamos criar o diretório responsável por armazenar o codigo da Web API

# mkdir -p /var/www/net-api

Finalizando esta configuração pode reiniciar o serviço do apache.

# systemctl restart httpd

1.1.3. Instalação do ASP.NET CORE 5 

Obtendo a lista de todos os pacotes da Microsoft.

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

Instalar pacotes adicionais e asnpnetcore-runtime-5.0

# yum install aspnetcore-runtime-5.0
# yum install dotnet-sdk-5.0

1.1.4. ASP.NET CORE 5 como serviço

Após concluir a etapa anterior, de instalação do asnetcore-runtime, pode configurar a WEB API como um serviço. conforme comando abaixo:

# vi /etc/systemd/system/dricapi.service

Adicionar o seguinte conteúdo:

 

[Unit]

Description=API TEST CODE

[Service]

WorkingDirectory=/var/www/net-api/
ExecStart=/usr/bin/dotnet /var/www/net-api/<Nome do app compilado>.dll 
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dricapi
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

A opção WorkingDirectory representa o local onde nossa API da Web ASP.NET Core está localizada.

A opção ExecStart executa dotnet e executa o arquivo DLL principal para o aplicativo. Toda vez que fizer uma modificação no nome da DLL, essa modificação deve ser feita no arquivo de serviço.

Para ativiar o serviço execute:

# systemctl enable dricapi.service
# systemctl start dricapi.service

 

Para verificar se o serviço esta funcionando corretamente, execute:

# systemctl status dricapi.service

1.1.5. ASP.NET CORE 5 – Considerações DEV

  Ao executar o ASP.NET Core , a maneira comum de se fazer isso é executar o aplicativo em um servidor Kestrel e, em seguida, fazer proxy desse servidor no Apache. A partir daí, o Apache disponibilizará o aplicativo.

Obviamente, o endereço IP solicitado seria perdido ao acessar o servidor Kestrel, portanto, o objetivo principal dos cabeçalhos encaminhados é carregar o endereço IP original com ele.

Partindo desta cenário, é necessário fazer algumas alterações na Classe startup, para oferecer suporte ao encaminhamento de cabeçalhos, conforme abaixo.

public class Startup

{   
    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
   {
       app.UseForwardedHeaders(new ForwardedHeadersOptions
        {
            ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
        });
         ...
    }
}