资讯专栏INFORMATION COLUMN

redis连接成功操作无反应,nginx 504的另一个原因

I_Am / 1581人阅读

摘要:遇到的个问题问题启动后,连接成功,时无反应,查看进程存在。问题,,访问页面正常,访问页面每次出现错误,修改配置文件调大响应时间均无效。一些尝试这两个问题不是同一天遇到的,究根结底原因是一样的。

遇到的2个问题

问题1: redis-server启动后,redis-client连接成功,set时无反应,查看redis-server进程存在。
问题2: nginx,php-fpm,访问html页面正常,访问php页面每次出现504错误,修改配置文件调大响应时间均无效。

一些尝试

这两个问题不是同一天遇到的,究根结底原因是一样的。奇葩的是nginx之前运行的好好的,突然就504了怎么改也回不来了,修改配置文件,查看错误日志,重启,重装软件,这些尝试后都没有效果。 google有说把php-fpm的listen由ip加端口号改成sock的,试了也没有效果。后来让php-fpm在后台运行,问题就没有了。redis-server也是同样。

反思

运行方式错误
启动php-fpm和redis-server的时候我是前台运行,然后ctrl-z的,这样进程就处于挂起状态了。php-fpm超时,redis没反应也就不难理解了。让进程在后台可靠运行的几种方法。
ctrl-c 是发送SIGINT信号,终止一个进程;ctrl-z 是发送 SIGSTOP信号,挂起一个进程;ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。可以通过jobs查看当前有多少在后台运行的命令;通过fg命令将后台中的命令调至前台继续运行;也可以用bg将一个在后台暂停的命令,变成继续执行 (在后台执行)。

在ps查看进程状态的时候忽略了进程的状态
常见的进程状态:
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
<高优先级
n低优先级
s包含子进程
+位于后台的进程组
在前台运行php-fpm然后ctrl-z状态是T,而正常运行时看到的是S,有的是Ss,Ss的那个主进程。

更好的启动方式
编写php-fpm启动脚本/etc/init.d/php-fpm,加入到service中,通过service来管理php-fpm的启动。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20905.html

相关文章

  • PHP面试题

    摘要:质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。代码块捕获异常,并创建一个包含异常信息的对象。这样可以解决超卖的问题,但是会导致文件得开销很大。 6.你们公司是使用什么框架? 答:我们公司采用的是TP框架,运用的mysql+apache+php进行开发,因为TP框架是一个免费开源的,轻量级的php开发框架,而且是我们中国人自己开发的,...

    ls0609 评论0 收藏0
  • CentOS(linux) 下Redis的安装(Nginx+Tomcat集群第三步:负载均衡+Ses

    摘要:注意如果图片显示不正常把这个改成。使用库方式切换操作各个数据库保存快照的频率,第一个表示多长时间,第二个表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。保存快照是否使用压缩数据快照文件名只是文件名,不包括目录。 Nginx+Tomcat集群第三步(负载均衡+基于Spring Boot的Session共享) Nginx和Tomcat没安装好的可以参考前两步: Ce...

    王伟廷 评论0 收藏0

发表评论

0条评论

I_Am

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<