ITPub博客

首页 > 自动化运维 > 应用服务器 > 阿里云ECS网站数据库连接错误与502 Bad解决方法

阿里云ECS网站数据库连接错误与502 Bad解决方法

应用服务器 作者:lixon166 时间:2021-02-15 14:23:21 0 删除 编辑

浅谈今日网站问题:

今天出现这两种错误的次数异常频繁,主要原因是阿里云服务器无法承受我多进程的操作,比如多区域测试网站速度,清除缓存,使用多个插件等,最终导致内存不足,专业来说就是:用来解释执行php程序的php-fpm进程占用过多内存,导致 mysql服务无法启动。

mysql服务关闭,自然网站会出现数据库连接错误的问题。而502 Bad gateway主要是因为PHP-CGI进程终止,和php-fpm.conf的设置有关。一般是php-fpm进程关闭,或者phpcgi进程不够用,需要增加php-fpm.conf 中的max_children值。解决方法如下:

一、最简单的方法:

重启阿里云ECS,就可以恢复正常。平时不要多进程操作,给服务器增加压力。

二、ECS Linux开启swap,也就是设置虚拟内存

1、创建用于交换分区的文件

dd if=/dev/zero of= /mnt/swap bs=1M count=1024

解释:bs=1M代表增加的模块大小,count=1024代表1024个模块,也就是2G空间

RAM是4G以下时,swap设置为RAM的2倍;RAM4G以上,swap等于RAM即可

2、设置交换分区文件

mkswap /mnt/swap

3、启用交换分区文件

swapon /mnt/swap

4、设置开机时自启用swap分区

vim /etc/fstab      #修改文件/etc/fstab中的swap行

/mnt/swap swap swap defaults 0 0    #然后添加该行语句

6、执行free -m命令查看效果

root3 root4

如果想增加虚拟内存swap:

  • 使用命令:dd if=/dev/zero of=/tmp/swap bs=1MB count=1024增加1G的swap空间。
  • 使用mkswap /tmp/swap命令制作一个swap文件。
  • 使用swapon /tmp/swap命令启动swap分区。
  • vim /etc/fstab 添加/tmp/swap swap swap defaults 0 0

三、针对数据库连接错误:

1、 启动mysql

/etc/init.d/mysqld start

如果无法启动时,需要关闭fpm

2、关闭php-fpm

/etc/init.d/php-fpm stop

3、重新启动mysql

/etc/init.d/mysqld start

注意:一般是这种原因,另外wordPress连接数据库的设置与mysql密码不一致,也会导致此现象出现。只需要重新设置密码,匹配密码即可!

root1

四、针对502 Bad gateway问题:

1、开启php-fpm

/etc/init.d/php-fpm start

2、查看php fastcgi的进程数(max_children值)

netstat -anop | grep php-cgi | wc -l

netstat -anpo | grep php-fpm | wc -l

ps aux | grep php-fpm

3、假如使用的进程数等于或高于5个,说明需要增加。然后调整/alidata/server/php/etc/php-fpm.conf 的相关设置

比如你的ECS运行内存是1G,1M带宽

vim /alidata/server/php-5.5.7/etc/php-fpm.conf

查看以下参数:

pm = static(静态)或者 dynamic(动态)

pm.max_children:静态方式下开启的php-fpm进程数量

pm.start_servers:动态方式下的起始php-fpm进程数量

pm.min_spare_servers:动态方式下的最小php-fpm进程数

pm.max_spare_servers:动态方式下的最大php-fpm进程数量

如果 pm = static,那么pm.max_children参数生效。则修改

pm.max_children = 20   #子进程数增加到20

request_terminate_timeout = 600  #执行时间修改为10分钟

如果 pm = dynamic,那么pm.max_children参数失效,后面3个参数生效。则修改

pm.start_servers = 5

pm.min_spare_servers = 2

pm.max_spare_servers = 8

root2

root5

当然这不是解决问题的所有方法,不过确实最常用最实用的方法,至此结束!


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992808/viewspace-2757282/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-01-07

  • 博文量
    13
  • 访问量
    10524