网站提示Connection refused_连接被拒绝排查
HTTP状态码错误提示含义与解决。HTTP状态码是服务器返回的3位数字,表示请求的处理结果:1xx信息、2xx成功(200 OK)、3xx重定向(301永久重定向/302临时/304未修改)、4xx客户端错误(请求有问题)、5xx服务器错误(服务器处理失败)。常见4xx:400 Bad Request(请求语法错/参数错,检查URL/表单/请求头);401 Unauthorized(需要认证,登录/输入密码,检查认证配置);403 Forbidden(服务器拒绝,权限不足/IP被封/目录索引禁止/防盗链,检查文件权限644/目录755、防火墙/IP黑名单、.htaccess、防盗链白名单);404 Not Found(页面不存在,URL错/文件被删/伪静态错,检查URL拼写、文件存在、伪静态规则,设置友好404页);405 Method Not Allowed(请求方法不允许,如POST访问只允许GET的页面,检查表单method/服务器配置);408 Request Timeout(请求超时,客户端太慢,检查网络/服务器负载);410 Gone(资源永久删除,比404更明确,设置301重定向到相关页);413 Payload Too Large(请求体太大,上传文件超过Nginx client_max_body_size/PHP upload_max_filesize,调大限制);414 URI Too Long(URL太长,检查URL/GET参数);429 Too Many Requests(请求过多被限流,WAF/限流插件,降低请求频率/加白名单)。常见5xx:500 Internal Server Error(服务器内部错误,PHP语法错/内存耗尽/.htaccess错/权限777/扩展缺失,看错误日志/开display_errors);501 Not Implemented(服务器不支持请求方法,检查请求方法/服务器配置);502 Bad Gateway(网关错误,Nginx反向代理从PHP-FPM/后端收到无效响应,PHP-FPM没启/进程不够/fastcgi配置错/超时,看Nginx错误日志+PHP-FPM状态);503 Service Unavailable(服务不可用,服务器过载/维护/后端不可用/WAF拦截,检查资源/维护模式/后端服务/WAF);504 Gateway Timeout(网关超时,Nginx等后端响应超时,PHP脚本慢/数据库慢查询/外部API超时/fastcgi_read_timeout太短,看PHP慢日志+调大超时+优化慢脚本);505 HTTP Version Not Supported(不支持HTTP版本,检查客户端/服务器HTTP版本配置)。遇到HTTP错误,先看状态码(F12→Network看请求状态),再对应原因排查,4xx是客户端/请求问题(URL/权限/认证/参数),5xx是服务器问题(程序/配置/资源/后端)。
网络与SSL错误提示排查。Connection refused(连接被拒绝)——浏览器无法连接服务器。原因:a.服务器没启动(Nginx/Apache没运行,service nginx status启动);b.端口没开放(防火墙/安全组没开80/443,云服务商安全组+服务器防火墙都要开);c.端口没监听(Web服务器没监听80/443,netstat -tlnp看);d.服务器宕机(云服务器停机/故障,云控制台看状态,重启/联系服务商);e.域名解析到错误IP(解析到旧服务器/不存在的IP,nslookup域名看IP,修改DNS)。解决:确认服务器运行+端口开放+监听+解析正确。Connection timed out(连接超时)——浏览器连接服务器但超时无响应。原因:a.服务器网络问题(带宽满/网络故障/被DDoS);b.防火墙丢包(防火墙规则错误丢包,不是拒绝);c.服务器过载(CPU/内存100%,无法响应,top看资源,优化/升级);d.路由问题(本地网络/运营商路由故障,换网络测试,traceroute看哪里超时);e.服务器在海外且被墙(国内访问海外服务器超时,用国内服务器/CDN)。解决:检查服务器资源/网络/防火墙,换网络测试区分是服务器还是本地问题。DNS_PROBE_FINISHED_NXDOMAIN(DNS解析失败)——浏览器无法解析域名到IP。原因:a.域名未注册/过期(域名没买或过期被释放,查域名whois状态,续费/注册);b.DNS未解析(域名没设置A记录/CNAME,域名管理后台添加A记录指向服务器IP);c.DNS未生效(刚改DNS,全球传播需要几分钟-48小时,等待或刷新本地DNS ipconfig/flushdns);d.DNS服务器问题(本地DNS服务器故障,换8.8.8.8/114.114.114.114测试);e.域名被hold/被墙(域名违规被注册商hold,或被GFW墙,查域名状态/换域名/用CDN)。解决:查域名状态+DNS配置+等待生效+换DNS测试。ERR_CONNECTION_RESET(连接重置)——连接被服务器/中间设备重置。原因:a.服务器程序崩溃(Nginx/PHP崩溃,连接被重置,看错误日志重启服务);b.防火墙/WAF重置(防火墙/WAF拦截请求并重置(误判攻击),临时关闭测试/加白名单);c.HTTPS配置错(SSL协议/密码套件不兼容,见SSL错误);d.服务器过载(资源满无法处理,连接重置);e.网络中间设备(运营商/路由器重置连接,换网络测试)。解决:看服务器日志+检查WAF/防火墙+测试资源+换网络。SSL/HTTPS错误:ERR_SSL_PROTOCOL_ERROR/ERR_SSL_VERSION_OR_CIPHER_MISMATCH(SSL协议/密码套件不兼容)——浏览器和服务器SSL版本/加密套件不匹配。原因:a.服务器SSL配置太旧(只支持SSLv3/TLS1.0,现代浏览器已禁用,Nginx配置ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers用现代套件);b.证书损坏/格式错(证书文件损坏/不是PEM格式,检查证书,重新申请/转换格式);c.端口错(HTTPS用443,访问了非SSL端口,检查URL是https://和443端口);d.服务器没配SSL(访问https但服务器没装证书,安装证书或用http)。您的连接不是私密连接(NET::ERR_CERT_*)——证书问题。常见:a.ERR_CERT_DATE_INVALID(证书过期,续签证书,Let's Encrypt自动续期失败手动续);b.ERR_CERT_COMMON_NAME_INVALID(证书域名不匹配,证书签发给www.a.com但访问a.com,申请包含多域名的证书/SAN证书,或301统一域名);c.ERR_CERT_AUTHORITY_INVALID(证书颁发机构不被信任,用了自签名证书/小众CA,用可信CA证书(Let's Encrypt/阿里云免费证书));d.ERR_CERT_REVOKED(证书被吊销,重新申请证书);e.混合内容(HTTPS页面加载HTTP资源,浏览器地址栏锁变感叹号,控制台Mixed Content警告,把所有资源URL改HTTPS或//相对协议,数据库批量替换http://域名为https://)。解决:检查证书有效期/域名/颁发机构,用可信CA证书,配置TLS1.2+/现代加密套件,强制HTTPS(301跳转),修复混合内容。
数据库错误提示排查。Error establishing a database connection(数据库连接失败)——WordPress等程序提示。原因:a.数据库服务没启动(MySQL/MariaDB没运行,service mysql status启动,启动失败看MySQL错误日志);b.配置信息错(wp-config.php/config.php中数据库名/用户名/密码/地址错,搬服务器后没改,核对配置);c.数据库不存在(配置的库名没创建,创建数据库+导入数据);d.用户权限不足(数据库用户没有该库权限,GRANT ALL ON 库.* TO '用户'@'localhost';);e.连接数满(max_connections满,SHOW PROCESSLIST看,杀无用连接/调大max_connections);f.数据库崩溃/损坏(表损坏/数据文件损坏,修复表/恢复备份,见MySQL启动失败);g.远程数据库连接(数据库在远程服务器,远程数据库IP白名单没加当前服务器IP/3306端口没开放,添加白名单/开放端口)。解决:先测试命令行连接(mysql -u用户 -p密码 -h地址 库名),能连接是程序配置问题,不能连接看数据库服务/权限/网络。Access denied for user 'user'@'host'(数据库访问被拒)——用户名/密码/权限错。原因:a.密码错(数据库用户密码不对,重置密码SET PASSWORD FOR 'user'@'localhost'=PASSWORD('新密码'););b.用户不存在(用户没创建,CREATE USER 'user'@'localhost' IDENTIFIED BY '密码'; GRANT...);c.主机不匹配(用户只能从localhost连接,但从远程IP连接,创建'user'@'%'或指定IP的用户);d.权限不足(用户没有该库/表权限,GRANT授权);e.密码含特殊字符没转义(配置文件中密码含#/!等特殊字符没加引号,加引号或改密码)。解决:确认用户存在+密码对+主机匹配+权限足够,用mysql命令行测试。Too many connections(连接数满)——MySQL连接数达到max_connections上限,新连接被拒。原因:a.并发高(网站访问量大,连接数不够);b.连接泄漏(程序没关闭连接,长连接堆积,检查代码用mysql_close/pdo=null);c.慢查询占连接(慢查询长时间占用连接,优化慢SQL/加索引);d.攻击(扫描/CC大量数据库连接,WAF防护)。解决:临时——SHOW PROCESSLIST看连接,KILL无用连接(KILL ID);永久——调大max_connections(my.cnf max_connections=200-500,根据内存)、优化慢查询(加索引/改SQL)、程序用连接池/短连接、WAF防攻击、升级服务器配置。Database Error/数据库错误(通用提示)——程序显示数据库错误但没具体信息。解决:a.开数据库错误显示(程序配置中开调试模式,或代码中echo mysql_error()/$pdo->errorInfo());b.看数据库错误日志(MySQL error.log);c.看程序错误日志(PHP错误日志);d.测试数据库连接(命令行mysql测试);e.检查最近修改(改了数据库配置/表结构?回滚测试)。Unknown database 'dbname'(未知数据库)——数据库名错/不存在。解决:SHOW DATABASES看有哪些库,创建数据库(CREATE DATABASE 库名 CHARACTER SET utf8mb4;)或修正配置中的库名。Table 'db.table' doesn't exist(表不存在)——表名错/被删/没导入。解决:SHOW TABLES看表,导入表结构数据(从备份恢复),修正表名(大小写,Linux区分大小写)。Unknown column 'col' in 'field list'(字段不存在)——字段名错/被删/没加。解决:DESCRIBE 表看字段,加字段(ALTER TABLE 表 ADD COLUMN 字段 类型),修正字段名。Duplicate entry 'x' for key 'y'(主键/唯一索引重复)——插入重复数据。解决:检查数据,用INSERT IGNORE或ON DUPLICATE KEY UPDATE,或删除重复数据。Can't connect to MySQL server on 'host'(无法连接MySQL服务器)——网络/服务问题。解决:检查MySQL服务运行、3306端口开放(netstat/防火墙)、远程连接授权(bind-address=0.0.0.0、用户host允许)、网络连通(ping/telnet host 3306)。数据库错误排查核心:先命令行测试连接(区分程序还是数据库问题)→看错误信息(具体原因)→检查服务/配置/权限/网络→修复。
站长反馈:「网站500错误,开了display_errors看到是PHP语法错误(漏了分号),修复就好,500大部分是PHP错误,开错误显示或看日志就能定位」「404错误查了是伪静态没配置,Nginx加了rewrite规则就好了,404先测动态URL,动态正常就是伪静态问题」。
安全提醒:网站错误处理安全注意事项——1.生产环境不要开启display_errors(会向访客暴露文件路径/数据库信息/代码结构,被黑客利用),错误记录到日志即可(log_errors=On,error_log指定路径),临时开启排查后立即关闭;2.不要把错误日志/备份文件/配置文件放在Web可访问目录(可能被下载泄露敏感信息),放网站目录外或配置禁止访问(Nginx location ~ .(log|sql|env|bak)$ { deny all; });3.数据库错误不要直接输出mysql_error()到前台(暴露表名/字段名/SQL语句,被黑客利用进行注入),生产环境显示通用错误提示(『数据库错误,请稍后重试』),详细错误记录日志;4.修改配置前备份(nginx.conf/my.cnf/php.ini,cp xxx xxx.bak),改坏能回滚,改配置后先测试再重载(nginx -t通过再reload);5.MySQL错误不要盲目删数据/重装(可能丢数据),先备份数据目录+看错误日志定位,数据损坏用innodb_force_recovery应急导出后重建,不要直接rm数据文件;6.内存耗尽/超时不要盲目调大配置(可能掩盖代码问题,大任务应该异步处理),先优化代码(死循环/大数组/慢查询),再合理调大配置(不要无限大,memory_limit=256M通常够,max_execution_time=30-300);7.上传限制不要调太大(可能被上传大文件占满磁盘/被攻击),合理设置(upload_max_filesize=20M,post_max_size=25M,client_max_body_size=50M),大文件用分片上传/对象存储;8.403/401不要随便关闭认证/开放权限(可能导致未授权访问),检查是否合法用户被误拦,修正权限/白名单,不要图方便全开放;9.被攻击导致的错误(Too many connections/503过载/连接重置)不要只重启服务,要查攻击来源+WAF防护+限流,否则会反复;10.错误处理后要记录(什么错误/原因/解决方法/时间),方便后续排查类似问题,也用于安全审计;11.定期检查错误日志(每周看Nginx/PHP/MySQL错误日志,发现异常(大量404/500/数据库错误)及时处理,可能是攻击/程序bug/被黑迹象);12.监控错误率(监控网站5xx错误率/可用性,异常告警,早发现早处理)。

更新时间:2026-08-30 16:04:23
上一篇:建站部署_上传文件类型限制指南