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お探しのページが見つかりませんでした
何が悪いのですか?私はサーバー構成が初めてなので、優しくしてください!!!
内部に問題があったことが判明location /
のtry_files $uri $uri/ =404;
はファイルの検索を開始します。問題は、これがJSONを提供するWeb APIであるため、最初からコンテンツが見つからなかったことです。これと仮想ホスト構成を削除すると、すべてが機能します。