加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Angular应用程序中进行代理时出现504(网关超时)错误

发布时间:2020-12-17 10:24:54 所属栏目:安全 来源:网络整理
导读:我正在尝试设置角度应用程序以使用2个不同的本地主机. 我在项目根目录中创建了一个后端文件夹,并在其中添加了echo.php文件.在项目根目录中,我还创建了proxy.conf.json,其中包含以下内容: { "/backend/**": { "target": "http://localhost:80","secure": fal
我正在尝试设置角度应用程序以使用2个不同的本地主机.

我在项目根目录中创建了一个后端文件夹,并在其中添加了echo.php文件.在项目根目录中,我还创建了proxy.conf.json,其中包含以下内容:

{
  "/backend/**": {
    "target": "http://localhost:80","secure": false

  }
}

我尝试用以下方法获取echo.php:

ngOnInit(){
    this.http.get('http://localhost:4200/backend/echo.php').subscribe(data => {
      console.log(data);      
    });
  }

启动Angular应用程序:

ng serve --port 4200 --host 0.0.0.0 --proxy-config proxy.conf.json

在浏览器控制台中,我收到504错误网关超时.在终端中,错误听起来有点不同:

[HPM] Error occurred while trying to proxy request /backend/echo.php from localhost:4200 to http://localhost:80 (ENOTFOUND)

我不知道我做错了什么.你能为我指出正确的方向吗?
我可以使用此URL:http://localhost/backend/echo.php直接访问非角度(在端口80上运行)服务器上的文件.

编辑:

echo.php:

<?php
echo "data from php";
经过许多小时,我发现了真正的问题.它源于在proxy.conf.json中指定目标.这是对的:
{
  "/backend/*": {
    "target": "http://127.0.0.1","secure": false,"changeOrigin":true,"logLevel": "debug"
  }
}

这不是:

{
  "/backend/*": {
    "target": "http://localhost","logLevel": "debug"
  }
}

这可能与不能自己执行服务有关.

ng serve

命令返回错误:

getaddrinfo ENOTFOUND localhost
Error: getaddrinfo ENOTFOUND localhost
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

这是一个老问题,我从来没有深究这个错误.相反,我只是使用ng serve –port 4200 –host 0.0.0.0来绕过它.

如果有人可以解释为什么这样做会很棒.我的/ etc / hosts文件包含以下内容:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
192.168.1.1      router.hm
127.0.0.1 My-MBP # added by Apache Friends XAMPP

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读