我有一个 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;
}
}
}
答案 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文件中的超时时间来解决此问题
解决方案:要么我们应该清除数据库端的所有会话,否则我们应该转换所有异步插入/选择/更新方法以在服务端进行同步。
同步调用的副作用::我们将失去应用程序的性能。