首页 新闻 会员 周边

linux(ubuntu 18.04) + nginx + angular + .net 5问题?

0
悬赏园豆:100 [已解决问题] 解决于 2021-04-05 16:59

突发奇想要自己搭建一套架构:

服务器:linux (ubuntu 18.04)

web服务:nginx

前端:angular

后台:.net 5 web api

服务器段大概的思路是:angular放nginx进行托管,对外开放ip端口80。angular调用本地.net 5 api接口,http://localhost:5000/WeatherForecast。

问题发生在angular调用接口时出错:

疑问:
1.这套架构是否成立?
2.如果成立,问题出在什么地方?需要.net api开放对外吗?

大概架构图:

服务器端调用.net core api接口如下:可以正确返回数据。

.net 代码:已经添加了跨域代码,本地测试通过跨域问题,所以不是跨域问题。

angular调用:

nginx配置:

困扰好长时间了,不知有没有园友有何方案?

Jason_黑色曼陀罗的主页 Jason_黑色曼陀罗 | 初学一级 | 园豆:116
提问于:2021-04-01 16:11

webapi走调试模式,angular调用接口时,能进断点吗

默卿 3年前

@默卿: 可以的,本地测试都是可以返回数据的。

Jason_黑色曼陀罗 3年前

@Jason_黑色曼陀罗: 我好像知道为啥了,你的webapi部署在本地,nginx在linux上,linux所在的服务器应该是无法访问你的本地接口吧... 你尝试把webapi部署到服务器上试试呢

默卿 3年前

@默卿: 兄弟,别闹。api是在服务器上,本意是 angular开放对外端口,而api服务器本地接口。

Jason_黑色曼陀罗 3年前

@Jason_黑色曼陀罗:angular是前台页面,你从浏览器发的请求是localhost。nginx为啥不给接口做配置呢

slowstart 3年前

@slowstart: 那我大概理解了:angular/.net api都必须开放对外接口才行。
nginx同时挂载angular和.net api 接口 该怎么做?

Jason_黑色曼陀罗 3年前
< >
分享
最佳答案
0
location /api {
	proxy_pass         http://127.0.0.1:5000/;
	proxy_set_header   Host $host;
	proxy_set_header   Connection keep-alive;
	proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
}

大概这么个意思,https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0#configure-nginx

收获园豆:100
slowstart | 小虾三级 |园豆:525 | 2021-04-02 15:28
其他回答(3)
-1


为什么是一段源码

魔露西 | 园豆:616 (小虾三级) | 2021-04-01 17:24

不知道为什么图片都不显示了。

支持(0) 反对(0) Jason_黑色曼陀罗 | 园豆:116 (初学一级) | 2021-04-01 20:35
0

api 要开外网访问,不然用户访问的时候浏览器请求locahost,你说用户电脑本地会有web服务器吗

shangsharon | 园豆:251 (菜鸟二级) | 2021-04-02 10:18

明白了,那就是不管angular和.net api是否在同一服务器上都是需要开放对外接口的。

支持(0) 反对(0) Jason_黑色曼陀罗 | 园豆:116 (初学一级) | 2021-04-02 15:22
0

需要配置跨域吧

Laggage | 园豆:878 (小虾三级) | 2021-04-02 11:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册