web-dev-qa-db-ja.com

Kestrel / .NET CoreアプリケーションへのNGINXリバースプロキシが404を返す

Microsoftガイド に従って、KestrelのリバースプロキシとしてNGINXを使用して、Digital Ocean Ubuntuサーバーで.NET Core 2.2アプリケーションをホストしようとしています。

すべてが正常に動作しているようですが、次のようなdefault-serverファイルにエラーはありません

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;

        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;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-For $scheme;
    }
}

# Virtual Host configuration for example.com
server {
    listen 80;
    listen [::]:80;

    # these were here by default
    root /var/www/example.com;
    index index.html


    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;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-For $scheme;
    }
}

この時点でアプリケーションをlocalhost:5000でdotnet [MyApplication].dllを使用して実行していますが、エラーはまだ発生していませんが、PostManに行き、http://<my-server-ip>:80/api/users/new-userを介してAPIをヒットしようとすると404が返されます。

404お探しのページが見つかりませんでした

404お探しのページが見つかりませんでした


何が悪いのですか?私はサーバー構成が初めてなので、優しくしてください!!!

1
Marc Freeman

内部に問題があったことが判明location /try_files $uri $uri/ =404;はファイルの検索を開始します。問題は、これがJSONを提供するWeb APIであるため、最初からコンテンツが見つからなかったことです。これと仮想ホスト構成を削除すると、すべてが機能します。

0
Marc Freeman