如何快速排查无法打开 ECS 实例上运行的网站

本篇文章给大家带来的内容是关于如何快速排查无法打开 ecs 实例上运行的网站,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

快速排查无法打开 ECS 实例上运行的网站

无法打开 Linux 实例上运行的网站

此处示范系统为 CentOS 6.8,请根据您的实际情况选择。

一、排查 80 端口不可用

运行命令 netstat -an | grep 80,查看 TCP 80 端口是否被监听。如果返回以下任意一种结果,说明已启动 TCP 80 端口的 Web 服务:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN # 全网监听

tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN # 本机监听

其中,本机监听会导致外网无法访问 Web 服务只有本机能访问,可参阅Nginx、Tomcat、IIS 更改端口监听地址的方法修改为全网监听。

第一步失效时:

查看实例安全组是否放行 80 端口。参阅添加安全组规则。

查看实例 iptables 是否放行 80 端口。

使用 telnet 和 traceroute 跟踪 80 端口的通断情况。参阅 ping 丢包或不通时链路测试说明。

查看云服务器带宽是否跑满。参阅云服务器 ECS Linux 服务器带宽异常跑满分析解决。

二、排查 Web 服务不可用

使用管理终端登录实例。

查看 Web 服务日志,如路径 /usr/local/var/log/nginx/ 存放 CentOS 6.8 Nginx 服务日志。

使用 top 查看实例运行状态,查看是否有异样进程。

在控制台查看实例监控信息,查看实例带宽是否跑满,若跑满,可尝试升级实例带宽。

查看实例 CPU/内存是否耗尽。参阅云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路。

查看实例 80 端口是否有过多的 TCP 链接。

通过 netstat -anp |grep tcp |wc -l 统计 TCP 连接数。

对比 /etc/sysctl.conf 配置文件的 net.ipv4.tcp_max_tw_buckets 最大值,看是否有超出情况。若超出:

执行 vi /etc/sysctl.conf 编辑文件,查询 net.ipv4.tcp_max_tw_buckets 参数。如果确认连接使用很高,容易超出限制。

调高参数 net.ipv4.tcp_max_tw_buckets,扩大限制。

输入指令 sysctl -p 使配置生效。

无法打开 Windows 实例上运行的网站

此处示范系统为 Windows Server 2008,请根据您的实际情况选择。

简篇AI排版 简篇AI排版

AI排版工具,上传图文素材,秒出专业效果!

简篇AI排版 554 查看详情 简篇AI排版

一、排查 80 端口不可用

执行命令 netstat -ano | findstr :80,查看 TCP 80 是否被监听。如果返回以下任意一种结果,说明已启动 TCP 80 端口的 Web 服务。

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1172 # 表示全网监听

TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 1172 # 表示本地监听

其中,本机监听会导致外网无法访问 Web 服务只有本机能访问,可执行 netsh http delete iplisten ipaddress= 127.0.0.1:80 修改为全网监听。

第一步失效时:

查看实例安全组是否放行 80 端口。参阅添加安全组规则。

查看实例防火墙是否放行 80 端口。参阅 Windows 防火墙限制端口/IP/应用访问的方法以及例外的配置。

使用 telnet 和 tracert 跟踪 80 端口的通断情况。参阅 ping 丢包或不通时链路测试说明。

查看云服务器带宽是否跑满。参阅 Windows 实例带宽和 CPU 跑满或跑高排查。

二、排查 Web 服务不可用

使用管理终端登录实例。

查看 Web 服务日志,如 Windows Server 2008 IIS 服务日志位置为: %SystemDrive%inetpublogsLogFilesW3SVC4。

通过 Task Manager 查看实例运行状态,查看是否有异样进程。

在控制台查看实例监控信息,查看实例带宽是否跑满,若跑满,可尝试升级实例带宽。

查看实例 CPU,内存的是否耗尽。参阅 Windows 实例带宽和 CPU 跑满或跑高排查或云服务器 Windows 实例 CPU 高占用率的处理及工具推荐。

查看实例 80 端口是否有过多的 TCP 链接。

执行以下命令并统计 TCP 连接数:

 netstat -n |find /i "time_wait" /c netstat -n |find /i "close_wait" /c netstat -n |find /i "established" /c

统计 TCP 连接数过高时,调整 TcpTimedWaitDelay 为 30s,其默认值是 4 分钟(240s):

打开 CMD,执行命令 regedit。

找到 HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > TCPIP > Parameters。

如果无 TcpTimedWaitDelay 项参数:

右击 Parameter > 新建 DWORD (32-位)值。

输入 TcpTimedWaitDelay,回车确认。

右击 TcpTimedWaitDelay,单击 修改 ,勾选 十进制,数值数据输入30,单击 确定。

以上就是如何快速排查无法打开 ECS 实例上运行的网站的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/280481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 16:15:51
下一篇 2025年11月4日 16:17:18

相关推荐

  • Go开发实践:解决go install“无安装位置”错误与GOPATH配置解析

    当使用 `go install` 命令遇到“`no install location for directory`”错误时,通常意味着go环境无法确定安装目标或源文件位置。这通常是由于项目不在go工作区(`$gopath/src`)内或`gopath`配置不当所致。本文将深入探讨此错误的成因,并提供…

    2025年12月16日
    000
  • Golang如何处理文件权限与属性_Golang文件权限属性操作实践详解

    Go语言通过os和syscall包提供文件权限与属性操作支持,使用os.FileMode表示权限,os.Chmod修改权限,os.Stat读取文件元信息,perm := info.Mode().Perm()获取权限部分,跨平台时需注意UID/GID等系统差异。 在Go语言中操作文件时,处理文件权限与…

    2025年12月16日
    000
  • 解决Go程序通过Upstart启动时遇到的GOPATH问题

    本文探讨go程序通过upstart启动时遇到的常见“包找不到”错误,主要原因在于upstart脚本未能正确设置或继承gopath环境变量。文章提供了两种主要解决方案:一是推荐将go程序预编译成独立二进制文件运行,避免gopath依赖;二是演示如何在upstart脚本中显式配置gopath,确保程序在…

    2025年12月16日
    000
  • 如何在Golang中配置GOPATH与GOROOT_Golang环境变量配置与管理技巧

    GOROOT指向Go安装目录,GOPATH为工作区路径;现代Go使用模块后GOPATH非必需,但仍用于缓存和工具安装,合理配置可避免依赖问题。 在Golang开发中,正确配置 GOPATH 与 GOROOT 是确保项目顺利编译和运行的基础。虽然从 Go 1.8 开始,许多默认值已自动设置,但理解这两…

    2025年12月16日
    000
  • C++与Python在高吞吐量消息处理中的性能考量与实践

    本文探讨了在处理高吞吐量消息(如每秒5000条消息的套接字连接、解析和日志记录)场景下,c++与python的性能对比与选择。尽管c++通常被认为性能更优,但python通过持续优化及特定策略,在i/o密集型任务中也能表现出色。文章强调了实际测试和性能剖析的重要性,并介绍了python的优化方法以及…

    2025年12月16日
    000
  • C++、Python与Go在网络消息处理中的性能权衡与实践

    本文探讨了在处理高并发网络消息(如每秒5000条消息的解析与日志记录)场景下,c++++、python和go的性能表现与选择策略。尽管c++通常被认为性能最优,但通过优化,python在此类i/o密集型任务中也能达到可接受的性能。文章强调了实际性能测试和代码分析的重要性,并介绍了go作为一种兼具性能…

    2025年12月16日
    000
  • Go Revel 框架应用端口冲突解决方案

    本文旨在解决go revel框架应用启动时常见的端口冲突问题,特别是当默认的9000端口被其他服务占用时。我们将详细介绍两种核心解决方案:通过修改`app.conf`配置文件永久更改应用端口,以及通过命令行参数在运行时动态指定端口。这些方法能有效避免服务冲突,确保go revel应用顺利运行,同时不…

    2025年12月16日
    000
  • C++与Python在I/O密集型任务中的性能考量与实践

    本文探讨了在处理高并发网络i/o(如每秒5000条消息的解析与日志记录)场景下,c++、%ignore_a_1%和go语言的性能表现与选择策略。尽管c++通常以其卓越性能著称,但python通过优化和异步i/o机制,在i/o密集型任务中也能展现出可接受的性能。文章强调了实际测试和性能分析的重要性,并…

    2025年12月16日
    000
  • Golang如何实现文件写入与追加

    Go中文件写入与追加主要用os和bufio库:1. os.WriteFile覆盖写入;2. os.OpenFile配合O_APPEND追加内容;3. bufio.Writer提升频繁写入性能,需调用Flush;4. 结合json.Marshal写入结构化数据。 在Go语言中,文件写入与追加操作非常常…

    2025年12月16日
    000
  • 解决Go Revel框架端口占用问题:实用指南

    go revel框架应用在启动时,默认使用端口9000,这可能导致“address already in use”错误,尤其当其他服务(如php-fpm)已占用该端口时。本文将详细介绍两种简单的解决方案:通过修改`config/app.conf`文件永久更改端口,或在命令行中指定端口,从而避免端口冲…

    2025年12月16日
    000
  • Linux开发Golang环境快速部署示例

    下载并解压Go至/usr/local/go,2. 将/bin加入PATH,3. 设置GOPATH为~/go_projects,4. 验证go version与env成功即完成环境部署。 在Linux系统上快速部署Golang开发环境,只需几个简单步骤即可完成。重点是配置好Go的安装路径和GOPATH…

    2025年12月16日
    000
  • Go语言中实现UDP Ping并解析ICMP端口不可达错误

    本文详细探讨了在go语言中实现udp ping以检测服务器端口可达性的方法。核心内容包括理解icmp目标不可达消息的结构(特别是类型3、代码3),以及如何在接收到icmp数据包后,通过解析其前两个字节来识别“端口不可达”错误。文章同时指出标准udp套接字在直接捕获icmp错误方面的局限性,并引入了原…

    2025年12月16日
    000
  • Golang如何升级到最新版本

    升级Go语言到最新版本需下载新版本并更新环境变量。当前最新稳定版为Go 1.25(2025年8月发布),性能、工具链和标准库均有改进。先运行go version查看当前版本,再从https://golang.org/dl/下载对应系统安装包;macOS和Windows用户建议使用.pkg或.msi安…

    2025年12月16日
    000
  • Revel框架端口配置指南:解决端口占用问题

    本文旨在解决go revel框架应用启动时常见的端口占用问题,特别是默认端口9000被其他服务占用的情况。教程将详细介绍两种解决方案:通过修改`config/app.conf`配置文件来指定新的http端口,或在运行revel应用时通过命令行参数动态设置端口,确保您的revel应用能够顺利启动并运行…

    2025年12月16日
    000
  • Golang如何在Linux下配置环境变量和路径

    配置Golang环境需先安装Go并解压到/usr/local/go,再设置GOROOT、GOPATH和PATH环境变量,将Go的bin目录加入系统路径,最后通过source ~/.bashrc生效配置并执行go version验证安装成功。 在Linux系统中配置Golang的环境变量和路径,主要是…

    2025年12月16日
    000
  • Go项目标准目录结构与构建实践

    本文详细阐述了go语言项目在gopath模式下的标准目录结构、包命名规范以及正确的构建与安装方法。通过解析常见的结构误区,指导开发者如何组织源代码以兼容`go get`工具,并区分`go build`与`go install`的用途,确保二进制文件按预期生成至指定位置,从而提升项目管理与协作效率。 …

    2025年12月16日
    000
  • Go程序Upstart服务化:解决GOPATH依赖问题与最佳实践

    本文探讨go程序在upstart环境下启动失败的常见原因,特别是gopath环境变量未正确设置导致依赖包无法找到的问题。我们将提供两种解决方案:一是推荐将go程序编译成独立二进制文件后运行;二是演示如何在upstart脚本中显式配置gopath。通过这些方法,确保go服务能够稳定、可靠地作为系统服务…

    2025年12月16日
    000
  • Golang如何使用Docker构建容器化应用

    先编写Golang HTTP服务程序,再通过多阶段Dockerfile构建轻量镜像,使用golang:1.21-alpine编译并复制到alpine运行,暴露8080端口,最终构建并运行容器,实现高效可移植部署。 Go语言(Golang)与Docker结合是现代微服务和云原生应用开发的常见实践。使用…

    2025年12月16日 好文分享
    000
  • Golang中检测开放文件路径变化的策略与挑战

    在Unix-like系统中,文件描述符与文件系统中的文件名是解耦的。一旦文件被打开,其文件描述符便与文件的inode关联,而非其名称。因此,直接通过开放文件描述符获取的文件名在文件被重命名后不会更新。本文将深入探讨这一机制,并提供一种在Go语言中通过比较inode来间接检测文件原始路径是否指向同一文…

    2025年12月16日
    000
  • 利用Go PPROF堆内存分析定位内存泄漏的实战指南

    本文旨在提供一份go语言pprof工具进行堆内存分析的实战教程。我们将详细介绍如何启用pprof、获取原始堆内存数据,并重点讲解如何正确使用`go tool pprof`命令及其`web`子命令生成可视化报告,以有效识别和诊断应用程序中的内存泄漏问题,避免常见的“空svg”错误。 引言:Go PPR…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信