Como posso descobrir como meu aplicativo .NET Core está configurado para ser executado em uma VM Ubuntu com NGINX?

Como posso descobrir como meu aplicativo .NET Core está configurado para ser executado em uma VM Ubuntu com NGINX?

Estou trabalhando com um aplicativo .NET Core em execução como um serviço baseado em systemd, em uma VM hospedada no Azure que executa o NGINX. (A VM é comissionada como um ambiente de desenvolvimento). Configurei um registro A usando o DNS do Azure para apontar para o IP do servidor. Quando insiro o nome do host especificado ( myapplication.mycompany.com) no navegador, vejo a página de boas-vindas do NGINX:

insira a descrição da imagem aqui

Quando insiro uma URL que espero retornar o número da versão do aplicativo, vejo um 404:

myapplication.mycompany.com/version.txt

Quando executo systemctl status myservicename, vejo que o serviço .NET Core foi iniciado e que o serviço principal está sendo executado da seguinte maneira:

   CGroup: /system.slice/myservicename.service
           └─...PID... /usr/bin/dotnet /var/aspnetcore/myservicename/myservice.dll

Quando eu olho /var/aspnetcore/myservicename/wwwroot, vejo o arquivoversion.txt

curl -v localhost:5000retorna a 302 found, afirmando Server: Kestrel, então euacreditarque Kestrel está servindo o serviço na porta 5000

Quando olho para a configuração do NGINX noProduçãoVM (que é uma imagem muito semelhante, executando uma instância comparável do serviço .NET Core), não vejo nada que pareça estar fazendo alguma conexão especial com o Kestrel. Eu vejo a configuração do NGINX usando:

cat /etc/nginx/nginx.conf

cat /etc/nginx/conf.d

(esses arquivos parecem idênticos aos da VM de desenvolvimento)

Onde devo procurar para determinar qual é a configuração para rotear solicitações para o aplicativo .NET Core? E há algo óbvio que possa estar causando o erro 404 quando eu solicito ...hostname.../version.txt?

ATUALIZAR

Descobri que /etc/nginx/sites-available/defaultno servidor web NGINX existem algumas das configurações principais. Então adicionei uma configuração para o nome do servidor que corresponde ao meu nome de host.

server {
    listen 80;
    server_name myapplication.mycompany.com;

Quando eu visito, myapplication.mycompany.com/version.txtainda recebo 404:

Responder1

Descobri que existem 2 arquivos de configuração que determinam a disponibilidade de um site:

/etc/nginx/sites-available/default

/etc/nginx/sites-enabled/default

Ambos precisam de configuração de roteamento semelhante para determinar os sites que estão disponíveis e habilitados no servidor NGINX:

Ambos os ficheiros de configuração definem a porta (80) que o NGINX utiliza para ouvir pedidos e definem o server_name, que liga o nome de anfitrião DNS do Azure ao servidor web NGINX:

server {
    listen 80;
    server_name myapplication.mycompany.com;

A configuração também determina como as solicitações são submetidas a proxy reverso (essencialmente 'encaminhadas') para o Kestrel, onde as solicitações são tratadas pelo aplicativo por meio do roteamento .NET Core MVC

location / {
    ... cacheing stuff

proxy_pass <http://localhost:5000;>

informação relacionada