由502 Bad Gateway 引发的一场‘学案’

今天测试的时候,页面直接502bad gateway,大致知道是网关错误了,但是更深层次的原理还是不知道。犹如看到一个美丽的倩影,想看看她的正面一样心痒痒,查点资料记下来,免得忘了。

搬运百度词条:

502 Bad Gateway是指错误网关,无效网关;在互联网中表示一种网络错误。表现在WEB浏览器中给出的页面反馈。它通常并不意味着上游服务器已关闭(无响应网关/代理) ,而是上游服务器和网关/代理使用不一致的协议交换数据。鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程

看了还不懂(此处我觉得我要补运维的知识了)

产生原因:

服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如 Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。
502 Bad Gateway即在服务器以代理服务器或网关的形式工作时,收到从上游服务器到达的执行请求的非法响应
嗯,还是不懂。继续:
http的周期(http我倒是知道,但是它的生命周期我是一片空白)
1.获取您的网站IP地址的IP名称(您的网站URL的地址’ http:// ‘ ) 。
2.查找(转换的知识产权名称, IP地址)所提供的 域名服务器( DNS Server) 。
3.打开一个IP 套接字连接到该IP地址。
4.写一个HTTP数据流通过该套接字。
5.从您的响应的Web服务器收到一个HTTP数据流。此数据流包含状态码的值是由 HTTP协议。解析此数据流的状态码和其他有用信息。
这个错误发生在最后一步时,上面的客户端收到一个 HTTP状态码,它确认为502 。
问题一:DNS:大致知道一点,是地址解析协议。将域名解析为ip地址
百度词条:域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送
问题二:套接字:这个就完全不知道了,
百度:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合
举例,还是百度: 传输层实现 端到端的通信:每一个传输层连接有两个端点。那么,传输层连接的端点是什么呢?不是 主机,不是主机的 IP地址,不是应用进程,也不是传输层的协议端口。传输层连接的端点叫做套接字(socket)。根据RFC793的定义: 端口号拼接到IP地址就构成了套接字。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)
问题三:502bad gateway 网关错误,猜测1.后端服务器tomcat没起来,应用服务的问题,2.依赖的服务问题,依赖的服务RT高,依赖的服务有大的读取(sql慢)以致于调用方超过read时间,3.服务器集群压力大也会出现502,响应不过来
引申504 gateway time out,网关超时,猜测1.计算机配置了,此处一般指nginx做反向代理时,所连接的服务器tomact无响应导致(不懂)
区别:502已经与后端服务建立了连接,但超时。504与后端连接未建立,超时。
同事说是泛域名导致的502,不懂继续百度。。
百度:比如用户的域名是abc.com,那么我们将主机名设置为"*",IP解析到比如:218.104.78.100,大家都知道*是 通配符,他表明abc.com之前的所有子域名都将解析到218.104.78.100,这就意味着例如输入bbs.abc.com或者123.abc.com或者123.234.abc.com都将解析到218.104.78.100,这里需要说明的是,在我们系统里面如果单独设置一个子 域名解析,比如将主机名设置为mail,单独解析到218.104.78.79,那么该解析记录优先。
作用:比如实现无限 二级域名功能,提供免费的 url转发,在IDC部门实现自动分配免费网址,在大型企业中实现网址分类管理等等,
具体作用:
1.可以让域名支持无限的 子域名(这也是泛 域名解析最大的用途)。
2.防止用户错误输入导致的网站不能访问的问题
3.可以让直接输入网址登陆网站的用户输入简洁的网址即可访问网站
4.在域名前添加任何子域名,均可访问到所指向的WEB地址
 
好了记这么多,随时回来继续百度学习,,,,
 

猜你喜欢

转载自www.cnblogs.com/boyspeng/p/12554105.html