使用代理时 Nginx 502 Bad Gateway 错误

2024-01-06

我有一个 Angular 构建和一个 Laravel 后端,提供在一台服务器上运行的 API。我已经在 nginx 中配置了它们,前端有一个到后端服务器的代理。

后端在 url 上运行(示例是占位符)http://api.example.com http://api.example.com并且前端正在运行http://example.com http://example.com

前端配置:

server {
    listen       80;
    server_name  example.com;

    location /api {
        proxy_pass http://api.example.com;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

    location / {
        root  /var/www/angular/em-frontend/dist;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html$is_args$args;
    }
}

后端配置:

server {
        listen 80;
        server_name api.example.com;

        root /var/www/angular/em-backend/public;

        index index.php index.html index.htm;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php?$query_string;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

现在,当我从前端执行任何 api 调用时,我会收到来自 nginx 的 502 Bad Gateway 错误。

从 nginx 错误日志:

2017/12/09 23:30:40 [alert] 5932#5932: 768 worker_connections are not enough
2017/12/09 23:30:40 [error] 5932#5932: *770 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: IP_MASKED, server: example.com, request: "GET /api/endpoint HTTP/1.1", upstream: "http://IP_ADDRESS:80/api/endpoint", host: "example.com", referrer: "http://example.com/dashboard"

知道我该如何解决这个问题吗?


您必须在位置块中使用 proxy-pass,如下例所示:

upstream myproject {
   server ip1 ;
   server ip2 ;
   server ip3 ;

} 
location / { 
   proxy_pass      http://myproject;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用代理时 Nginx 502 Bad Gateway 错误 的相关文章

随机推荐

  • NPM 未创建 .bin 目录

    我在用着npm v1 4 4 and 节点 v0 10 25 on Mac OS X 10 9 2 我最近升级了node和npm 现在npm install不再在node modules中创建 bin目录 我已经删除了node module
  • NetlinkListener 和 NetlinkEvent 错误消息

    我的应用程序在运行时不会中断 但是总是出现以下错误信息 NetlinkListener 忽略非内核netlink多播消息 NetlinkEvent NetlinkEvent FindParam 未找到参数 UDEV LOG 我正在开发的应用
  • 如何在 UITableView 顶部添加浮动按钮?

    我需要在 UITableViewController 顶部添加浮动按钮 以下链接用于在 UIViewController 顶部添加 FloatingButton 操作 在 iOS 应用程序中创建浮动菜单 https stackoverflo
  • 如何在 bash 中编写小数 for 循环

    如何在 bash 中编写小数 for 循环 我收到类似的错误 upgradver 1 00 syntax error invalid arithmetic operator error token is 00 我正在尝试类似的东西 upgr
  • 帮助非 oop 开发人员理解基于接口的编程的最佳类比是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我很难让我的团队适应基于界面的编程 有人有一些建议吗 为了帮助您的团队适应这个想法 最好的方法是演示基于界面的开发可以完成什么 并将其与没有它的
  • 如何使用 zoneID 和 recordID 初始化 CKRecord?

    我目前正在构建一个同步解决方案Core Data记录到CloudKit 我需要帮助才能找出我想要做什么CKRecord是可行的 我检查了 Apple CloudKit 文档 进行了实验并搜索了网络 但没有找到我想要的答案 我想初始化 CKR
  • 如何在 Java 中检查某一天是在本周?

    有没有最简单的方法可以找到本周的任何一天 此函数返回 true 或 false 与给定日期是否在本周相关 您肯定想使用 Calendar 类 http docs oracle com javase 6 docs api java util
  • 即使有前缀,CSS 网格布局也无法在 IE11 中工作

    我正在为我的网格使用以下 HTML 标记 section class grid section
  • 如何在php中使用锚点将数组传递到另一个页面

    我必须使用以下方法将数组值从一个 php 页面传递到另一个 php 页面 a href href 这是我的编码 cluster是一个数组 echo td a href Click here to OFF a td in myebon php
  • .NET 框架是否提供解析 HTML 字符串的方法?

    知道我不能使用 HTMLAgilityPack 只能直接使用 NET 假设我有一个包含一些 HTML 的字符串 我需要以这种方式解析和编辑 通过 id 或标签查找层次结构中的特定控件 修改 最好是创建 这些找到的元素的属性 net 中有可用
  • 使用波形符分隔符将 MSAccess 表导出为 Unicode

    我想从MSAccess2003导出几个表的内容 这些表包含 unicode 日语字符 我想将它们存储为波浪号分隔的文本文件 我可以使用 文件 导出 手动执行此操作 并在 高级 对话框中选择波形符作为字段分隔符 选择 Unicode 作为代码
  • node.js 哈希字符串?

    我有一个想要散列的字符串 在 Node js 中生成哈希值的最简单方法是什么 哈希用于版本控制 而不是安全性 如果你只想对一个简单的字符串进行 md5 哈希 我发现这对我有用 var crypto require crypto var na
  • 仅针对特定元素的 JavaScript SelectionChange 事件

    我想实现一个 JavaScriptselectionchange特定事件div元素 所以如果用户从 DOM 中选择文本 我想显示一个荧光笔框 我已经为网络实现了这个onmouseup事件 但我一直在尝试为移动设备实现这一点 对于移动浏览器我
  • Scala 2.8 CanBuildFrom

    继我问的另一个问题之后 Scala 2 8 突破 https stackoverflow com questions 1715681 scala 2 8 breakout 我想更多地了解一下 Scala 方法TraversableLike
  • C 的 INI 文件解析器

    我需要在 C 中读 写 INI 文件 对我来说有点奇怪的是我找不到任何标准的方法来做到这一点 在 C 中处理 INI 文件的常用方法是什么 我更喜欢平台无关的和 Linux INI 文件解析器库 This link http blog br
  • 删除 SwiperJS 中用数组映射的幻灯片而不重置状态

    我已经为这个问题苦苦挣扎了很长一段时间 但一直无法弄清楚 在这里编写沙箱演示代码 https codesandbox io s swiper remove slides w4gy3 file src App js 我有一组渲染的幻灯片Swi
  • 浅克隆中的“嫁接”提交到底是什么?

    在 git 中进行浅克隆时 使用 depth选项 根提交被标记为grafted 谷歌搜索没有找到任何令人满意的文档 好像没有什么关系git 移植 https git wiki kernel org index php GraftPoint
  • jQuery 数据表行顺序

    dTable periods grid dataTable bProcessing false bPaginate false bDestroy true bFilter false aaData myArray 为什么行顺序混乱 我希望行
  • Google Docs API:文档资源 ID 是否会改变?

    构建一个类似网站的环境 其中所有链接都基于文档中的资源 ID 是否明智 文档 ID 过去是否发生过变化 将来是否会发生变化 上周 我们惊讶地发现一个集合中的某些文档 ID 似乎已更改 这可能吗 id 是条目的唯一 永久标识符 因此它永远不应
  • 使用代理时 Nginx 502 Bad Gateway 错误

    我有一个 Angular 构建和一个 Laravel 后端 提供在一台服务器上运行的 API 我已经在 nginx 中配置了它们 前端有一个到后端服务器的代理 后端在 url 上运行 示例是占位符 http api example com