当前位置: 首页 > 编程日记 > 正文

PHP网站首页打不开的原因讲起

最近有个网站首页打不开,偶尔报504错误,如图所示,这是nginx直接返回的。


今天下午16:00多又出现了,看了下阿里云数据库连接,其实在晚上2:00也出现了一次。这个图是后来问题已经解决了获取的,数据库连接的请求数已经降下来了。



现在似乎是数据库压力很大,由于我们的数据库服务器同时有好几个库在线上,并不确定是其他系统把数据库拖垮还是当前这个系统的原因。


使用语句查询数据库的会话数

SQLSERVER 查看当前连接数
Select * from sys.dm_exec_connections --此命令可以看到有多少人在连
Select * from sys.dm_exec_sessions --此命令可以看到有多少会话,一个连接可以有多个会话


从图中大致定位到还是之前报504的网站对数据库的请求数很多。


定位到具体应用就可以上对应的服务器去进一步去查

先看CPU是比较正常的



再查PHP-FPM的进程数


正常情况下php进程只有10个左右,一下子变成这么多肯定说明是外界有很大的请求数。


但是为了确定是不是php出现什么异常导致进程无法结束,所以结束所有进程,重启php-fpm.。

发现没过多久又出现很多的进程数,所以可以得出结论:这说明nginx报504的原因是外界的请求是持续的,导致数据库压力巨大请求不过来,所以nginx报504


然后查这个时候的nginx日志最近500条数据

#tail -n 500 /usr/local/nginx/logs/access.log >>500_20160218-1712.txt


从日志里看出主要是百度和搜狗的蜘蛛在爬行,百度是一直在爬行的,应该是比较稳定不会导致网站突然流量剧增,而且据说百度会控制访问的频率,保证不把网站爬挂。

看来后面的日志,发现这个时间段搜狗的蜘蛛爬行数量是非常多的,由于蜘蛛是用集群在爬,所以屏蔽IP是没用的,只能在nginx里屏蔽请求头。

server {listen       80;root        /www/;index  index.php;#禁止特定爬虫的抓取if ($http_user_agent ~* "Sogou web spider") {return 403;}

然后重新结束php进程,启动php进程,发现整个进程是非常平稳的维持在10个


说明就是搜狗搞的事情,当务之急只能先这么着了,谁让搜狗没有多少用户群呢,后续的解决方案还是使用缓存,所以从这个事情得出一条非常重要的结论,尽量使用缓存,不要因为网站现在很稳定就不使用缓存,因为网站随时会遇到这种访问量突发的情况


屏蔽搜狗之前:

屏蔽搜狗之后:



下面是从nginx日志中分析出来的各种蜘蛛对网站的爬行数据排名靠前的几个,其实已经屏蔽了谷歌等很多用处不大的爬虫,但是还是有很多爬虫在爬:


看的出来搜狗一天怕了不少。


特定IP抓取网站数据,其实是和指针类似,但是这类抓取一般会不定时,所以需要监控php进程,及时屏蔽对方IP

监控php-fpm进程数

#!/bin/sh 
echo `date '+%Y-%m-%d %H:%M:%S'` "php进程数>>>"`ps -ef | grep php-fpm | wc  -l` >> /usr/wwwyuanboweb/phpfpm.txt


如果要做进程不存在重启之类的事情

#!/bin/sh 
ps -ef | grep php-fpm | wc  -l
if [ $? -ne 0 ]
then
echo "start process....."
else
echo "runing....."
fi
#####


需要windows到linux转码

# yum install -y dos2unix
# dos2unix ./t.sh

或者

vi t.sh
:set fileformat=unix
:wq 

还需要给shell脚本权限

#chmod +x ./t.sh

#contab  -e

*/1 * * * * /bin/bash  /usr/wwwyuanboweb/t.sh

查指定时间段的nginx日志

# sed -n '/23\/Feb\/2016:13:45:00/,/23\/Feb\/2016:13:50:59/'p /usr/local/nginx/logs/access.log>>20160223-1345-1350.txt

屏蔽指定的IP

通过iptables屏蔽某些或者某个IP地址达到屏蔽效果
# iptables -I INPUT -s 192.168.38.174 -j DROP //屏蔽单个ip
# iptables -I INPUT -s 192.168.38.0/100 -j DROP //屏蔽某段ip


网站监控数据




相关文章:

前端资源整理 - 订阅、工具等

取自 我的GITHUB 的 fe-store-house repo,欢迎 PR,欢迎 STAR。原 repo 不定期更新,此文可能断更。断更了一年多,重新更新一下,似乎 sfgg 的文章渲染中 gfm table 解析有问题。最新更新时间 2017-11-02。前端资源 中文 …

mysql和mariadb可以同时使用吗,MariaDB与MySQL在一台服务器同时运行

[rootHE3 ~]#groupaddmariadb-g 513[rootHE3 ~]#useradd -u 513-gmariadb-s /sbin/nologin -d /home/mariadbmariadb从MariaDB官网下载二进制安装包至/root目录,本文采用的是目前最新稳定版mariadb-10.1.16[rootHE3 ~]# tar xvf mariadb-10.1.16-linux-x86_64.tar.g…

http请求与响应

一、请求格式 二、响应格式 转载于:https://www.cnblogs.com/believepd/p/10470824.html

Linux环境安装phpredis扩展

php访问redis需要安装phpredis扩展,phpredis是用纯C语言写的。phpredis下载地址 https://github.com/phpredis/phpredis 最新的版本是phpredis-develop.zip,我们选择的上一个稳定版2.2.7# wget https://github.com/nicolasff/phpredis/archive/2.2.7.tar…

IO流(文件的读写)---本文的正确性有待您验证。

2019独角兽企业重金招聘Python工程师标准>>> JAVA的I/O介绍。<<疯狂JAVA编程>>第15章有详细介绍&#xff0c;如下&#xff1a; http://www.cnblogs.com/lijunamneg/archive/2013/03/22/2975087.html import java.io.FileNotFoundException;import java.…

创建图像 php,详解php创建图像具体步骤

php 的图像处理在验证码是最常见的&#xff0c;下面说下使用php创建图像的具体步骤。简要说明&#xff1a;PHP 并不仅限于创建 HTML 输出&#xff0c; 它也可以创建和处理包括&#xff0c;&#xff0c;&#xff0c;以及在内的多种格式的图像。 更加方便的是&#xff0c;PHP 可以…

Java语法基础-序列化

33&#xff0e; Java序列化中如果有些字段不想进行序列化&#xff0c;怎么办&#xff1f; 答&#xff1a;对于不想进行序列化的变量&#xff0c;使用transient关键字修饰。 transient关键字的作用是&#xff1a;阻止实例中那些用此关键字修饰的的变量序列化&#xff1b;当对象被…

Spring AOP与IOC

Spring AOP实现日志服务pom.xml需要的jar <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version> </dependency> <dependency><groupId>org.springfr…

matlab求解外弹道,基于MATLAB∕Simulink的通用质点外弹道程序设计.pdf

2017.01 设计与研发基于 MATLAB/Simulink 的通用质点外弹道程序设计崔 瀚(沈阳工学院兵器类虚拟仿真实验教学中心, 辽宁抚顺 ,113122 )摘要&#xff1a;本文以弹丸质点外弹道学为研究对象&#xff0c;通过分析以时间为 自变量的质点外弹道方程组&#xff0c;借助 MATLAB/Simuli…

深入Java虚拟机读书笔记[10:20]

第十章 栈和局部变量操作 第十一章 类型转换 第十二章 整数运算 第十三章 逻辑运算 第十四章 浮点运算 第十五章 对象和数组 第十六章 控制流 第十七章 异常 以上一些是操作码相关的内容&#xff0c; 第十八章 finally子句 微型子例程 字节码中的finally子句表现的很像微型子例…

docker Rails Permission denied @ dir_s_mkdir

sudo chmod 777 -R public转载于:https://www.cnblogs.com/znsongshu/p/9777543.html

图形化的Redis监控系统redis-stat安装

Redis需要监控才知道具体运行信息&#xff0c;虽然Redis也提供了info等命令行&#xff0c;但是毕竟不方便而且不能保存历史信息。 redis-stat是一个用ruby写成的监控redis的程序&#xff0c;基于info命令获取信息&#xff0c;而不是通过monitor获取信息。 关于Redis的安装参考此…

Oracle简单脚本演示样例

Oracle简单脚本演示样例 1.添加表 --改动日期&#xff1a;2014.09.21 --改动人&#xff1a;易小群 --改动内容&#xff1a;新增採购支付情况表 DECLARE VC_STR VARCHAR2(5000); VN_COUNT NUMBER; BEGIN --查看现有系统是否有BT_PRODUCT_MODEL表 SELECTCOUNT(…

matlab看fft帮助,日记 [2009年06月02日] MATLAB FFT HELP 帮助文档及我的翻译

fftFast Fourier Transform 的缩写&#xff0c; 即为快速傅氏变换&#xff0c;是离散傅氏变换的快速算法&#xff0c;它是根据离散傅氏变换的奇、偶、虚、实等特性&#xff0c;对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现&#xff0c;但是对于在…

用Kotlin在IntelliJ Idea中无法生成 spring-configuration-metadata.json 文件

为什么80%的码农都做不了架构师&#xff1f;>>> 问题描述 在百度搜索关键词,搜索到了 Stack Overflow 有相关问题 spring-configuration-metadata.json file is not generated in IntelliJ Idea for Kotlin ConfigurationProperties class 原文链接: https://stack…

Linux系统轻量级监控工具monitorix和munin安装

提到监控工具&#xff0c;大家都会想到zabbix等重量级的&#xff0c;这些好是好&#xff0c;但是需要安装数据库等等&#xff0c;如果有时候希望简单点其实可以借助一些轻量级的监控工具&#xff0c;例如monitorix和munin。需要做点前置工作开启Nginx和php-fpm的status&#xf…

MySql 查询表字段数

MySql 查询表字段数 SELECT COUNT(*) FROM information_schema.columns WHERE table_schematest_cases AND table_namecases_send ; test_cases 为数据库名称 cases_send 为表名 列出表字段名称 SHOW COLUMNS FROM cases_send

phpstudy2014 php7.0,phpstudy下载_phpStudy下载2014 官方版_php环境集成包 1.0_零度软件园...

phpStudy 1.7.0 (phpStudy V1.65 Build 080120)该程序包集成最新的ApachePHPmysqlphpMyAdminZendOptimizer&#xff0c;一次性安装&#xff0c;无须配置即可使用&#xff0c;是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境&#xff0c;还包括了开发工具、开发手册等…

AndroidApplication优化解耦

Application后处理器&#xff08;AndroidPostProcessing&#xff09;&#xff1a; 通过注解配置初始化各模块及应用所需 sdk&#xff0c;按优先级/延时时间/是否只在Debug下有效/执行线程 等条件初始化 sdk 通常&#xff0c;我们要在 Application 中处理一堆的三方 SDK 和自定义…

Git 详解

1. Git 1.1. Git是何方神圣? Git是用C语言开发的分布版本控制系统。版本控制系统可以保留一个文件集合的历史记录&#xff0c;并能回滚文件集合到另一个状态&#xff08;历史记录状态&#xff09;。另一个状 态可以是不同的文件&#xff0c;也可以是不同的文件内容。举个例子&…

shell基础语法以及监控进程不存在重启

转码 # dos2unix ./test.sh 权限# chmod ax ./test.sh语法 变量 var"111" echo $var echo ${var}运算 no14; no25; let resultno1no2 echo $result;自增自减少 let no let no--[]和let类似 result$[ no1 no2 ] result$[ $no1 5 ] 也可以使用(())&#xff0c;但使…

java md5算法,JAVA实现MD5算法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package org.zcq100.Other;public class MD5 {static final int S11 8;static final int S12 13;static final int S13 18;static final int S14 23;static final int S21 7;static final int S22 11;static final int S23 …

Hulu直播服务难点解析(一):系统需求

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/83053654 Hulu在其博客发布了建立直播服务遇到的挑战及解决方案&#xff0c;这对于以前只提供点播服务的系统而言是一次彻底的升级。Li…

Velocity 入门(一)

Velocity是一种Java模版引擎技术&#xff0c;该项目由Apache提出。因为非常好用&#xff0c;和工作中有啥用&#xff0c;所以我在在理简单的入门一下。 网上找了很多教程&#xff0c;写的不是很明白&#xff0c;要么就是全部拷贝下来时候运行不起来。 在这里我来写一份比较完成…

php 魔术方法 多继承,day23:单继承多继承菱形继承__init__魔术方法

原文&#xff1a;https://www.cnblogs.com/libolun/p/13434675.html单继承关于继承的一些基本概念1.什么是子类?什么是父类?如果一个类继承另外一个类&#xff0c;该类叫做子类(衍生类)&#xff0c;被继承的类叫做父类(基类&#xff0c;超类)2.继承的种类:1.单继承 2.多继承3…

最新版IntelliJ IDEA 15开发Java Maven项目

IntelliJ IDEA是最好的java开发IDE之一 下载地址&#xff1a;http://www.jetbrains.com/idea/download/1.安装好之后开始创建项目2.选择Maven类型项目&#xff0c;选择JDK3.设置Maven坐标4.需要给新项目Add Framework support5.选择Java EE项目模板6.初始的网站修改pom.xml文件…

Android APP全面屏适配技术要点

全面屏的概念 为什么先要解释一下全面屏&#xff0c;因为这个词在现在来讲就是一个伪命题。全面屏字面意思就是手机的正面全部都是屏幕&#xff0c;100%的屏占比。但是现在推出所谓“全面屏”手机的厂商没有一个能达到全面的。 那么下面来说一下Android开发领域对全面屏的理解和…

PHP数据库连接池SQL Relay安装使用

SQL Relay按照其官网http://sqlrelay.sourceforge.net/index.html上所说是&#xff1a;A powerful database connection management solution. 翻译为中文也就是说SQL Relay是一个开源的数据库池连接代理服务器。目前SQL Relay支持的数据库很多&#xff1a; SQL Relay supports…

oracle实例由,Oracle数据库和实例

Oracle数据库服务器由一个数据库和至少一个数据库实例组成。 数据库是一组存储数据的文件&#xff0c;而数据库实例是一组管理数据库文件的内存结构。 另外&#xff0c;数据库由后台进程组成。一个数据库和一个实例是紧密相连的&#xff0c;因此术语 - Oracle数据库 通常用来指…

说一说activity

activity与service&#xff0c;provider&#xff0c;receiver并称为 android的四大对象。 而activity&#xff0c;是展现界面的必不可少的组件。我这里有几个问题要问了&#xff0c;他是如何加载&#xff0c;他是如何进行npc的。具体是怎么实现的了。 说道activity的加载&#…