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 }); ... } }