ASP.NET Core 2 Web API-502 Bad Gate Way(Centos 7)-NGINX

时间:2018-11-04 19:56:19

标签: linux nginx server centos asp.net-core-webapi

我有一个 ASP.NET Core 2 Web API项目 Centos 7 Linux服务器

我将项目作为服务运行在服务器中。

它在我的服务器上运行7/24。

如果我写到Linux终端“ wget http://localhost:5000/api/users --no-check-certificate” ,则用户json文件下载到我的服务器上。这里没有问题。

但是我无法从本地计算机访问我的api。

如果我将http://[SERVER_IP]:[PORT]/api/users写入网络浏览器,它将返回 502 Bad Gateway Http状态代码。

我该如何解决?

etc / nginx / nginx.conf

http {
      ...
      server{
         listen 12900;
         location / {
            proxy_pass http://195.201.150.228:5000;
         }
      } 
}

Photo

2 个答案:

答案 0 :(得分:0)

我解决了这个问题。我的服务器具有vesta c面板。因此,请勿将服务器块写入 etc / nginx / nginx.conf 。我创建了一个用户和一个名为 api.hocamnerede.com 的子域,并将服务器块写入了 /home/Hocamnerede/conf/web/api.hocamnerede.com.nginx.conf

/home/Hocamnerede/conf/web/api.hocamnerede.com.nginx.conf

server {
listen      195.201.150.228:80;
server_name api.hocamnerede.com www.api.hocamnerede.com;
root        /home/Hocamnerede/web/api.hocamnerede.com/public_html;
index       index.php index.html index.htm;
access_log  /var/log/nginx/domains/api.hocamnerede.com.log combined;
access_log  /var/log/nginx/domains/api.hocamnerede.com.bytes bytes;
error_log   /var/log/nginx/domains/api.hocamnerede.com.error.log error;

    location /api {
        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-Proto $scheme;
    }
}

答案 1 :(得分:0)

我预计 502错误的网关和http请求被ASP.NET Core中的CORS策略阻止的原因

由于数据库中出现死锁,我们在浏览器控制台中也可能会收到502错误的网关错误。

数据库死锁::我们正在尝试异步获取/放入数据库中的数据,因为大量事务和服务未得到任何响应,因此db被锁定了。

解决方案::我们可以通过增加web.config文件中的超时时间来解决此问题

解决方案:要么我们应该清除数据库端的所有会话,否则我们应该转换所有异步插入/选择/更新方法以在服务端进行同步。

同步调用的副作用::我们将失去应用程序的性能。