404 未找到

404 未找到

我一直试图在 Digital Ocean Ubuntu 服务器上托管 .NET Core 2.2 应用程序,使用 NGINX 作为 Kestrel 的反向代理,遵循Microsoft 指南

一切似乎都运行正常,我的默认服务器文件中没有错误,如下所示

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 并尝试通过 API 访问时http://<my-server-ip>:80/api/users/new-user返回 404:

404 未找到

404 未找到


nginx/1.14.0(Ubuntu)

我做错了什么?我是服务器配置新手,所以请多包涵!!!

答案1

原来问题出location /在开始查找文件的 中try_files $uri $uri/ =404;。问题在于这是一个提供 JSON 的 Web API,因此一开始就找不到任何内容。删除它并修改虚拟主机配置后,一切正常。

相关内容