我的知识记录

网站重启后无法访问_服务未启动与配置丢失解决

Nginx启动失败排查。Nginx是最常用的Web服务器,启动失败常见原因:1.配置语法错误——nginx.conf或站点配置(conf.d/*.conf)语法错误(漏分号/括号不闭合/指令拼写错/重复server_name),启动时报错「nginx: [emerg]」并指出错误文件和行号。解决:nginx -t测试配置,看错误信息,修复对应行语法。2.端口占用——80/443端口被其他程序占用(Apache/其他Nginx/Node.js/云盾),启动报错「bind() to 0.0.0.0:80 failed (98: Address already in use)」。解决:netstat -tlnp | grep :80看占用程序,停掉占用程序(service httpd stop)或改Nginx监听端口。3.权限错误——nginx.conf权限不对(root只读),或日志目录/缓存目录权限不足,启动报错「permission denied」。解决:chown root:root nginx.conf,chmod 644,日志目录/var/log/nginx权限755属主nginx。4.SSL证书错误——证书文件不存在/路径错/证书和私钥不匹配/证书过期,启动报错「SSL_CTX_use_PrivateKey_file failed」「no start line」。解决:检查证书路径,证书和私钥对应(openssl x509 -noout -modulus -in cert.crt | md5sum和openssl rsa -noout -modulus -in cert.key | md5sum对比,一致才匹配),重新申请/上传证书。5.worker进程数/连接数配置不合理——worker_processes超过CPU核数,worker_connections太大超过系统限制(ulimit -n),启动警告或失败。解决:worker_processes auto(自动=CPU核数),worker_connections 1024-10240,调大系统ulimit -n(/etc/security/limits.conf)。6.include文件不存在——配置中include了不存在的文件(如include mime.types;但mime.types丢了),启动报错。解决:检查include路径,恢复缺失文件。7.虚拟主机配置冲突——多个server_name重复、listen重复,启动警告。解决:检查站点配置,删除重复/冲突的server块。8.系统资源不足——内存不足/磁盘满,Nginx无法启动(fork失败/写日志失败)。解决:free -h看内存,df -h看磁盘,释放资源/升级配置。排查流程:nginx -t测试配置(最快定位语法错误)→看启动错误信息(systemctl status nginx或journalctl -u nginx,错误信息通常指出原因和行号)→检查端口占用→检查权限→检查SSL证书→检查系统资源。Nginx启动失败90%是配置语法错误或端口占用,nginx -t+看错误信息基本能快速定位。

网站启动502/503/白屏/数据库连接失败排查。502 Bad Gateway启动后:1.PHP-FPM没启动——service php-fpm status,没启动就启动,启动失败看PHP-FPM错误日志。2.PHP-FPM进程数不够——pm.max_children太小,并发请求超过上限,502。解决:调大pm.max_children(根据内存),看php-fpm日志(WARNING: server reached pm.max_children)。3.Nginx fastcgi_pass配置错——fastcgi_pass指向的PHP-FPM地址/端口/socket不对(如127.0.0.1:9000但PHP-FPM用socket)。解决:检查PHP-FPM listen配置(www.conf),Nginx fastcgi_pass对应(127.0.0.1:9000或unix:/run/php-fpm.sock)。4.fastcgi_read_timeout太短——大请求(备份/导入)超时,调大fastcgi_read_timeout 300。5.PHP-FPM崩溃——PHP代码致命错误/内存耗尽导致PHP-FPM进程崩溃,看PHP错误日志,修复代码/调大memory_limit。503 Service Unavailable启动后:1.服务器过载——CPU/内存/带宽满,无法响应,top/free/df看资源,优化程序/升级配置/限流。2.维护模式——网站开启了维护模式(返回503),关闭维护。3.后端服务不可用——PHP-FPM/MySQL/缓存服务停,启动服务。4.WAF/限流——WAF/限流插件拦截(误判攻击),临时关闭测试/调规则。5.云服务器故障——物理机故障/迁移,联系云服务商。启动白屏:1.PHP致命错误——语法错/内存耗尽/调用未定义函数,display_errors=Off时白屏。解决:临时开错误显示(error_reporting(E_ALL);ini_set('display_errors',1);),看PHP错误日志,修复。2.BOM头——PHP文件UTF-8 BOM导致输出/session错,编辑器转无BOM。3.数据库连接失败——配置错/服务停,连接失败但错误被抑制(@),白屏。解决:检查数据库配置+服务状态。4.缓存损坏——模板编译缓存/数据缓存损坏,删除缓存目录(runtime/cache)。5.输出被抑制——代码中exit/die在内容前,或ob_start缓冲被清。启动数据库连接失败:1.启动顺序——Web服务器启动了但MySQL还没启动(启动慢/崩溃),等MySQL启动或设依赖(systemd After=mysql.service)。2.MySQL没启动——service mysql status,启动失败看MySQL错误日志(见MySQL启动失败专题)。3.配置错误——config.php数据库地址/库名/用户名/密码错(搬服务器后没改),核对配置。4.权限/连接数——数据库用户权限不足/连接数满,授权/调大max_connections。5.socket/端口——MySQL socket路径错/端口没监听,检查my.cnf,netstat看3306。启动错误排查要结合多个日志(Nginx/Apache错误日志+PHP错误日志+MySQL错误日志+系统日志/var/log/messages),交叉验证定位根因。

运维反馈:「Nginx启动失败,nginx -t一看是配置文件漏了分号,修复就好了,启动失败先测试配置+看错误信息,基本能定位」「MySQL启动失败看错误日志,发现是数据目录属主不对(被人改成root了),chown mysql:mysql就启动了,权限问题很常见」。

安全提醒:网站启动错误处理安全注意事项——1.修改配置前备份配置文件(nginx.conf/my.cnf/php.ini,cp xxx xxx.bak),改坏了能回滚;2.改配置后先测试再重载(nginx -t通过再nginx -s reload,不要直接restart,测试不通过不重载),避免配置错误导致网站宕机;3.MySQL启动失败不要盲目重装/删除数据目录(可能丢数据),先备份数据目录(cp -a /var/lib/mysql /backup/mysql_bak),看错误日志定位,数据损坏用innodb_force_recovery应急导出后重建,不要直接删数据;4.innodb_force_recovery=1-6是应急措施,不要长期用(可能丢数据/损坏),能启动后立即mysqldump导出所有数据,然后重建MySQL导入;5.磁盘满不要乱删文件(特别是MySQL数据文件/binlog/系统文件),先看大文件(du -sh /* | sort -h),删旧日志/旧备份/缓存,binlog用PURGE命令删不要直接rm;6.端口占用不要随便kill进程(先确认是什么程序,ps aux看,可能是重要服务),确认无用再kill;7.权限修改不要递归777(安全风险),用644/755,正确设置属主(chown),不要图方便全777;8.启动失败期间网站不可访问,尽快处理(看日志+测试,大部分10分钟内解决),严重问题(MySQL数据损坏)可能需要更长时间,开维护模式告知用户;9.生产环境不要随便重启MySQL(重启期间数据库不可用,大库启动慢),先看日志定位,能不重启就不重启(如改配置可动态调整的用SET GLOBAL);10.启动脚本/服务设开机自启(systemctl enable),服务器重启后自动启动,避免重启后网站不可用;11.监控启动状态(监控宝/UptimeRobot+服务器资源监控),启动失败/服务宕机立即告警,早发现早处理;12.定期演练故障恢复(如MySQL崩溃恢复、配置错误回滚),确保出问题能快速处理。

网站重启后无法访问_服务未启动与配置丢失解决

标签:

更新时间:2026-08-26 23:41:40

上一篇:带 www 跳转到不带 www在Tomcat上的实现_付费 EV 证书配置与301规则

下一篇:阿里云虚拟主机首页403原因_权限与默认首页排查