nginx实现反向代理出现502的解决方法

目录

1. 出现原因

1.1. 防火墙拦截了端口

1.1.1. 使用 iptables

1.1.2. 使用 firewall-cmd(适用于 CentOS/RHEL 7+)

1.2. docker容器中的ip和宿主机ip不一致


1. 出现原因

这里我是用的docker容器来进行nginx的启动的,在我们用nginx的配置进行反向代理的时候,有时候访问反向代理的url会出现Bad Gateway也就是坏请求,这里无非就是几种情况:

这里是我的代理代码:

    location /base {proxy_pass http://localhost:8800;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}

1.1. 防火墙拦截了端口

我们在宿主机也就是服务器里面执行我们的资源路径:

curl  http://1.92.141.215:8800/captchaImage

可以看到是能访问得到的

然后进入容器执行这行命令: curl  http://1.92.141.215:8800/captchaImage命令

docker exec -it nginx bash

我的也是可以访问的,说明我的端口80和8800都是开放的,如果你的在nginx访问不到 说明端口没有开放,可以关闭防火墙或者开放安全组的端口

1.1.1. 使用 iptables

假设您要开放 TCP 端口 80

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables-save

1.1.2. 使用 firewall-cmd(适用于 CentOS/RHEL 7+)

sudo firewall-cmd --zone=public --add-port=80/tcp --permanentsudo firewall-cmd --reload

通过这样你就可以正常访问到代理的资源路径了 

1.2. docker容器中的ip和宿主机ip不一致

因为在docker容器里,我们映射了代理到本机的localhost上面,但是容器的IP宿主机的IP是不一样的,所以无法通过127.0.0.1去进行代理,必须把localhost换成服务器的IP

    location /base {proxy_pass http://1.92.141.215:8800; # 将localhost换成服务器ipproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}

这样我们通过代理的url去访问我们的服务器资源就可以成功访问了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Power Apps

目录 一、引言1、Power Apps2、应用场景3、Power Apps的优势与前景4、补充 二、数据源介绍1、SharePoint2、Excel3、Dataverse4、SQL5、补充(1)OneDrive 三、Power Apps应用类型1、画布应用2、模型驱动应用3、网站 Power Pages 四、Power Automate五、Po…

如何提高LabVIEW开发的效率?

提高LabVIEW开发效率对于工程师和研究人员来说非常重要,因为这不仅能缩短开发周期,还能提高系统的可靠性和可维护性。以下从多个角度详细分析如何提高LabVIEW开发的效率。 1. 项目规划与管理 1.1 明确需求 在项目开始前,详细明确项目需求&…

解决Playwright在Ubuntu下启动报错的问题:从环境到依赖的全面优化

在Ubuntu环境中使用Python进行web自动化测试时,Playwright是一个非常强大的工具。然而,在具体实践中,我们常常会遇到各种错误,尤其是在不同Python版本和依赖版本之间切换时。本文将详细介绍如何应对这些问题,并提供一些解决方法。 问题背景 在使用Playwright时,我们有时…

深入解析tcpdump:网络数据包捕获与分析的利器

引言 在网络技术日新月异的今天,网络数据包的捕获与分析成为了网络管理员、安全专家以及开发人员不可或缺的技能。其中,tcpdump作为一款强大的网络数据包捕获分析工具,广泛应用于Linux系统中。本文将从技术人的角度,详细分析tcpdu…

天气冷电脑不能启动找不到硬盘

https://diy.zol.com.cn/2004/0611/101994.shtml

Unity3D UI框架的设计架构与编码实现详解

一、引言 随着游戏开发技术的不断发展,Unity3D作为一款强大的跨平台游戏开发工具,受到了越来越多开发者的青睐。在Unity3D中,UI(用户界面)框架的设计是项目开发中的关键环节。本文将详细介绍Unity3D UI框架的设计架构…

MySQL中不持久和持久受限系统变量的简要介绍

SET PERSIST和SET PERSIST_ONLY是MySQL中用于将全局系统变量的值持久化到数据目录下的mysqld-auto.cnf选项文件的命令。但是,并非所有的系统变量都可以被持久化,或者只能在某些限制性条件下被持久化。以下是系统变量可能无法持久化或持久化受限的一些原因…

微信小程序开发用uni-app开发框架还是微信原生开发?

小程序依托微信入口,借助微信生态对流量补充的优势,拥有超12亿微信用户群体,微信小程序成为流量变现的一个重要通道。 从商家角度来说,借助小程序触达和获取线上用户的门槛更低,用户路径和交易转化也更快。同时&#…

Jmeter多用户token使用问题

背景 在测试的时候,经常会有模拟用户登录,拿到用户 token 后再去请求接口的场景。 这个模拟用户登录就会分为两种,一种是单用户,另一种是多用户。 日常自动化测试的时候可能一个用户对应 n 个用例就可以满足大多数场景&#xf…

MySQL集群高可用架构之MySQL InnoDB Cluste

今天我将详细的为大家介绍Centos 7.5 基于 MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!! 一、MySQL InnoDB Cluster 介…

RK3568平台(音频篇)音频ALSA框架

一.ALSA框架简介 ALSA表示先进linux声音架构(Advanced Linux Sound Archiecture),它由一系列的内核驱动、应用程序编程接口(API)以及支持linux下声音的应用程序组成、 ALSA项目发起的原有是linux下的声卡驱动&#x…

PAT A1016. 最短路径

题意 有N个结点围成一个圈,相邻两个点之间的距离已知,且每次只能移动到相邻点。然后给出M个询问,每个询问给出两个数字A和B即结点编号(1≤A,B≤N),求从A号结点到B号结点的最短距离。样例解释 如图3-2所示,共有5个结点,…

Spring Cloud:构建分布式系统的利器

引言 在当今的云计算和微服务架构时代,构建高效、可靠的分布式系统成为软件开发的重要任务。Spring Cloud 提供了一套完整的解决方案,帮助开发者快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器等)。本文将探…

薄冰英语语法学习--名词1

我用来教我自己3岁的小孩的。 有特殊的情况,暂时先不用管,3岁小孩,只用全部按非特殊情况算就ok了,以后长大了,遇到问题了,再微调一下。先解决百分之90的问题。 一般的复数,直接加s 特殊的词尾…

海南云亿商务咨询有限公司抖音电商服务领军企业

在数字化浪潮席卷全球的今天,电商行业已成为推动经济发展的重要引擎。而抖音,作为短视频领域的佼佼者,其独特的商业模式和庞大的用户群体,为电商行业带来了前所未有的机遇。海南云亿商务咨询有限公司,正是把握这一时代…

Java中的并发编程问题与解决方案

Java中的并发编程问题与解决方案 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨Java中的并发编程问题及其解决方案。随着多核处理器的普及和应用…

使用 JavaScript 的 SpeechRecognition API 实现语音识别

在现代的 Web 开发中,语音识别已经成为一个非常有用的功能。通过浏览器提供的 SpeechRecognition API,我们可以在网页上实现语音输入的识别功能。本文将介绍如何使用 JavaScript 和 SpeechRecognition API 来实现简单的语音识别功能。 什么是 SpeechRec…

如何通过isAccessAllowed方法实现访问控制

如何通过isAccessAllowed方法实现访问控制 在Web应用开发中,确保用户的访问权限是至关重要的。本文将详细讲解一个自定义的 isAccessAllowed 方法是如何实现这一功能的。我们将逐步解析这段代码,并探讨它的安全性和实现细节。 相关框架和类简介 在开始…

gd32-DMA测试

1)内存到内存 uint8_t srcBuf[8] {0,1,2,3,4,5,6,7}; uint8_t dstBuf[8]; void DMA_M2M_Test(void) { //DMA0测试中,内存到内存不可以,不知道什么情况; // dma_multi_data_parameter_struct dma_init_parameter; // rc…

MySQL数据库练习----简易药品管理系统

CREATE TABLE user (userId int(11) NOT NULL AUTO_INCREMENT COMMENT 用户ID,userName varchar(255) NOT NULL COMMENT 用户名,account varchar(255) NOT NULL COMMENT 账号,password varchar(255) NOT NULL COMMENT 密码,createtime datetime NOT NULL COMMENT 创建时间,PRIM…