问题描述

前后端分别部署在不同的服务器中,它们的访问域名不一致,前端访问域名是front.my.com,后端访问域名是server.my.com。为了解决跨域问题,前端调用后端接口通过nginx反向代理实现。

nginx配置

server{listen 80;server front.my.com;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;location ^~ /api/ {rewrite '^/api/(.*)'  /$1 break;proxy_pass http://server.my.com;}
}

接口调用
通过反向代理调用接口:http://front.my.com/api/getUserData

报错信息
nginx报错:502 Bad Gateway

通过日志查看详细报错信息:
epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream …

而且发现仅发出一次请求,日志中却无故出现了多条请求记录,因此猜测是nginx死循环造成。

问题分析

调用后端接口时(http://front.my.com/api/getUserData),front.my.com反向代理到server.my.com的url。server.my.com带请求头"front.my.com",又去请求front.my.com这个域名,造成了死循环。

解决办法

方式一:注释掉标记1处proxy_set_header Host $host;的代码
方式二:添加标记2处的代码

server{listen 80;server front.my.com;#标记1-方式1# proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;location ^~ /api/ {rewrite '^/api/(.*)'  /$1 break;proxy_pass http://server.my.com;#标记2-方式2proxy_set_header Host "server.my.com";  #host配置成后端服务器访问域名 }
}

nginx死循环解决办法相关推荐

  1. Java 递归 死循环解决办法自创

    业务上遇到的,引入递归担心第三方接口不稳定陷入死循环,故自己想了一个解决办法,代码如下,如果帮到各位请帮我点个赞,谢谢 public JSONObject getLocus(String token, ...

  2. nginx访问本地目录一直不好使_「welcome to nginx」nginx配置不生效,页面一直是默认页面welcome to nginx的解决办法 - seo实验室...

    welcome to nginx ubuntu下nginx的配置文件所在目录: /etc/nginx 我们对nginx的配置主要写在nginx.conf文件里,这个目录下还有conf.d和sites- ...

  3. nginx: [error] invalid PID number in /run/nginx.pid解决办法之一

    原因之一是nginx监听的端口号被我关闭了. 所以直接重启大法: service nginx restart

  4. Mysql循环语句,死循环解决办法

    delimiter // #定义标识符为双斜杠 drop procedure if exists test; #如果存在test存储过程则删除 create procedure test() #创建无 ...

  5. nginx alias php,Nginx Alias 无法解析PHP的解决办法

    Nginx Alias 无法解析PHP的解决办法: server { listen       80; server_name  xxxx.com.cn; error_log  /tmp/eror.l ...

  6. nginx大量TIME_WAIT的解决办法(转载)

    2019独角兽企业重金招聘Python工程师标准>>> 转载自: http://liuyieyer.iteye.com/blog/2214722?utm_source=tuicool ...

  7. flask uwsgi nginx *504* Gateway Time ou解决办法

    flask uwsgi nginx 504 Gateway Time ou解决办法 此方法有可能无效 修改 vi /etc/nginx/conf.d/配置文件名.conf 添加如下信息: uwsgi_ ...

  8. nginx的权限问题(Permission denied)解决办法

    nginx的权限问题(Permission denied)解决办法 一个nginx带多个tomcat集群环境,老是报如下错误: failed (13: Permission denied) while ...

  9. Nginx服务器不支持PATH_INFO的问题及解决办法

    Nginx服务器不支持PATH_INFO的问题及解决办法 参考文章: (1)Nginx服务器不支持PATH_INFO的问题及解决办法 (2)https://www.cnblogs.com/echoso ...

最新文章

  1. Java多线程编程实战指南
  2. 单实例模式(singleton)
  3. 请求处理传入原生的API || 请求处理CharacterEncodingFilter解决乱码问题
  4. JdbcTemplate在Spring的ioc中使用
  5. Generic Access Profile (GAP)
  6. docker安装redis(最新)
  7. c# XML和实体类之间相互转换(序列化和反序列化)
  8. 解释什么是快速排序算法?_解释排序算法
  9. nginx 配置详解_Nginx 配置详解
  10. 1910140408安装win版
  11. mysql慢查询 表级锁_三分钟了解Mysql的表级锁——《深究Mysql锁》
  12. linq学习笔记(5):Count/Sum/Min/Max/Avg
  13. 6.打包和部署应用 6.1创建可执行的JAR的Spring Boot
  14. 51/STC12单片机SCON,PCON,TMOD寄存器定义及功能
  15. python 概率分布_Python中的联合概率分布
  16. 写给励志做码农的大学生
  17. drupal7 分页
  18. html做群聊通讯方法,微信如何发起群聊邀请(微信群链接生成教程)
  19. Vm linux虚拟机与本地宿主机互通
  20. 向日葵远程控制引起惠普战笔记本亮度无法调节问题

热门文章

  1. 用java写一个图书类book
  2. SQLMAP-Tamper之较为通用的双写绕过
  3. 动态组件component
  4. 跟着团子学SAP EPPM: CPM主要底表
  5. 联想笔记本维修记——硬盘问题
  6. python在cmd中打印彩色文字
  7. 超微服务器芯片,北京超微GPU服务器
  8. 华为p20支持手机云闪付吗_银联云闪付支持HuaweiPay
  9. golang学习资源
  10. vue3学习-vue create报错tunneling socket could not established