-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想:所以今天我们来学学如何使用Zabbix监控tcp状态
本文主要聚焦于将 php-fpm 应用容器化并迁移部署到 TKE集群(使用nginxingress)
利用php-fpm-exporter对php-fpm进行监控 1、php-fpm开启status接口 2、nginx代理php-fpm接口 3、使用php-fpm-exporter暴露指标给Prometheus 4、granfna展示 一、 php-fpm 开启status接口 需要提前安装好php,和nginx 环境 1、 找到php配置文件,修改配置,开启status vim /usr/local/php/etc/php-fpm.conf ... pm.status_path = /status pin
# 手动安装lnmp 包含 libiconv libunwind gperftools libmcrypt mhash mcrypt libpng freetype jpeg gd pcre libmemcached php_memcached(memcached.so) eaccelerator ZendOptimizer MySQL5.5 php5.3 nginx1.2.7 memcached tokyocabinet tokyotyrant #路径 程序存放 /data/service lib or common /data/service/common 数据存放 /data/data 日志存放 /data/logs
Docker提供了多个容器直接访问的方法,最简单的方式是直接使用端口映射-p参数指定映射的端口或者-P映射所有端口,多个容器直接通过网络端口进行访问。
firewall-cmd --add-port=2377/tcp # 节点加入集群使用 firewall-cmd --add-port=8888/tcp # swarm图形化工具访问端口 firewall-cmd --add-port=5000/tcp # 节点访问私库端口 firewall-cmd --add-port=80/tcp # dockerfile进行测试端口 firewall-cmd --add-port=8080/tcp # service nginx的访问端口
由于官方php:7.2.2-fpm-alpine3.7 镜像不含composer,而单独做一个composer镜像又会依赖php镜像,所以应该在php镜像中添加composer.Dockerfile如下:
参数优化 将php-fpm配置文件中的参数 pm修改为 pm = static 默认是dynamic,动态的 这个参数用来控制php-fpm进程创建是动态创建还是在php-fpm启动时就创建好 修改为static的理由是,static在启动时创建,能节省动态创建php-fpm进程的开销 和pm=static相关联的参数有 pm.max_children=24 最大创建的php-fpm进程 pm.max_children 数量的多少根据机器内存确定,基本上一个进程需要30M的内存,假设起100
firewall-cmd –add-port=2377/tcp # 节点加入集群使用 firewall-cmd –add-port=8888/tcp # swarm图形化工具访问端口 firewall-cmd –add-port=5000/tcp # 节点访问私库端口 firewall-cmd –add-port=80/tcp # dockerfile进行测试端口 firewall-cmd –add-port=8080/tcp # service nginx的访问端口
在/home/app/phpfile文件夹下创建 php.ini文件和conf.d文件夹
通过阅读之前的小节,相信大家对 Docker 在开发中的应用已经有了一定的了解。作为一款实用的软件,我们必须回归到实践中来,这样才能更好地理解 Docker 的实用逻辑和背后的原理。在这一小节里,我们就举一个完整的例子,让大家跟随这个项目的脉络,熟悉如何通过 Docker 和 Docker Compose 来搭建应用开发环境。
我的博客 https://savokiss.com 用的是 typecho,一直使用的是 阿里云ECS 直接安装的 MySQL 和 PHP,由于买的时间比较早,当时用的是 CentOS 6.5。后来想玩 docker,发现 docker 只支持 CentOS 7+,加上之前的系统上东西太乱了,所以这次有时间就将数据库和 typecho 源码备份了一下,然后换了一个纯净的 CentOS 7.6 的镜像。由于我买的 ECS 是 1CPU 1GB 内存,之前还一直担心跑不起来 docker,这次升级完之后发现完全没问题,内存用了一半都不到哈~于是记录下这个过程,说不定可以帮到其他小伙伴。
最近一同事反馈在后台保存某业务数据时一直报403,该数据由运营人员在后台录入,然后向后端发送POST请求保存数据;现象是如果内容过长如几十K则报403,如果只输入几个字符则没问题,多方排查无解。
docker 官网下载 https://www.docker.com/products/docker-desktop
监控php-fpm并自动重启服务的shell脚本,脚本的主要功能:不断检查网站的状态,如果异常就重启php-fpm服务
转载请备注出处: [狂码一生]http://www.sindsun.com/article-details-125.html
3、运行MySQL容器 由于在生产环境中,大多数公司十分忌讳将MySQL这样的服务放在虚拟化的技术上运行,一般都是单独一台服务器,只跑MySQL服务,所以,这里为了简便一些,直接运行MySQL容器即可,就不去做这个MySQL数据的持久化了(主要是懒的找是那些目录要实现数据持久化了)
本文主要介绍笔者经常用到的shell脚本,在centos7系统下安装LNMP和FTP,还有redis和docker,主要针对服务器的。 L=Linux(这里系统Centos7),N=Nginx(Yum安装 nginx),M=Mysql(这里安装MariaDB-10.2.9),P=PHP7和PHP8
Nginx本身只能解析html文件,但有些网页是php写的,就需要Nginx连接php,将网页解析成html再发给客户端。
通过 top、ps、pidstat 等工具,你能够轻松找到 CPU 使用率较高(比如 100% )的进程。接下来,占用 CPU 的到底是代码里的哪个函数呢?
PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,对于PHP 5.3.3之前的php来说,是一个补丁包 ,旨在将FastCGI进程管理整合进PHP包中。
通过前两节对平均负载和 CPU 上下文切换的学习,我相信你对 CPU 的性能已经有了初步了解。不过我还是想问一下,在学这个专栏前,你最常用什么指标来描述系统的 CPU 性能呢?我想你的答案,可能不是平均负载,也不是 CPU 上下文切换,而是另一个更直观的指标—— CPU 使用率。
docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用:
Nginx 配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main 部分设置的指令将影响其它所有部分的设置;server 部分的指令主要用于指定虚拟主机域名、IP 和端口;upstream 的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location 部分用于匹配网页位置(比如,根目录“/”,“/images”,等等)。他们之间的关系式:server 继承 main,location 继承 server;upstream 既不会继承指令也不会被继承,它有自己的特殊指令,不需要在其他地方的应用。
本文详细介绍了 nginx 常用配置。 修改主配置文件 /etc/nginx/nginx.conf worker_processes auto; http { # 配置首页 index index.php index.htm index.html; # 引入子配置文件 include /etc/nginx/conf.d/*.conf; } 命令 # stop 是快速停止 nginx,可能并不保存相关信息,quit 是完整有序的停止 nginx,并保存相关信息 $ nginx -s s
1、下载PHP的XDebug扩展,网址:http://xdebug.org/ # wget http://pecl.php.net/get/xdebug-2.1.2.tgz # tar -xzf xdebug-2.1.2.tgz # xdebug-2.1.2 # cd xdebug-2.1.2 # /usr/local/php/bin/phpize # ./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config # make && make install
最近闲来无事发现一款免费的,号称使用智能语义分析算法的WAF(SafeLine,也叫雷池WAF)于是打算搭建试用一下 。
从字面理解应该是Upstream返回的header头超出限制了 ,这里大概脑补下FastCgi协议,Nginx和PhpFpm是通过这个协议进行数据传输的,其中Nginx和后端所有Upstream交互都是分两步的,第一步是处理头,第二步是处理body,每个协议实现自己的部分。
搭建lnmp完lnmp环境后,测试时出现502报错,看到这个问题,我立刻想到是php-fpm没有起来,但是我用 ps -ef | grep php-fpm 截取 php-fpm 的进程,发现是有的,这时我有查看nginx的错误日志,发现错误信息是:
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel ssse2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gettext-devel libXpm-devel libtool libevent libevent-devel gd-devel gd libmcrypt libmcrypt-devel pcre pcre-devel
前面的是运行周期的配置,后面的是sh脚本的路径,该方式一般需要自己编写sh脚本来执行
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
今天我们来探究系统CPU使用率高的情况,所以这次实验的准备工作,与上节课的准备工作基本相同,差别在于案例所用的 Docker 镜像不同。
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。
公司有一个Web Service,访问量不大, 但也不算小, 每天几百万的量级。正常情况下, 平均每个请求响应的时间在200毫秒左右。 每天几百万的访问量, 那么程序每秒请求处理数量在几十个左右, 高峰期也就上百, 而服务器上php处理请求的进程数是大于这个数的,因此, 服务器的处理能力勉强能满足当前量级的请求, 除了少数时候高峰期会出现不稳定的状况, 大多数时候也算是相安无事, 但是从服务器失败请求的数量来看应该离服务器处理能力极限的临界点不远了。 这个Web Service有一个特点, 它并不是面向终端
使用docker搭建一个php、redis、mysql、nginx的常用实例,基础好的同学可直接跳过前面的基础讲解,直接开始实战,其中解决了Mac docker中实例间网络不通的问题,对docker宿主机的磁盘映射、网络通信有了更深层次的理解。
在 Linux 系统中,常见的动态追踪方法包括 ftrace、perf、eBPF/BCC 以及 SystemTap 等。
购买服务器:在阿里云上注册账号,如果是学生的话可以买学生套餐,否则买正常的。在用户面板会得到一个密码,用户名默认为root。这个密码是可以修改的。同时会获得一个公网的IP。 非常重要的就是修改完密码要重启一下服务器。 登陆服务器:在terminal执行ssh root@公网IP( ssh root@42.96.142.34),提示输入密码,输入之后登陆上。 登录后yum update 配置私钥免登录:如果电脑在已经有了.ssh目录下已经有了.pub文件,那就直接使用即可,没有的话把生成一个公钥和私钥(ssh
前不久在开源中国看到一款叫长亭雷池的防火墙软件,在自己的博客站上实验了一下效果不错,听说腾讯云又在做服务器的活动,所以将网站加固的过程在免费体验服上梳理了一遍,希望能帮助到更多同学保护自己的站点服务。
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/80814045
调用分词服务的服务发现超时并告警,查看分词服务被调耗时发现一切正常;本机手动请求发现确实存在响应慢的问题。
在众多编程语言中,PHP 可谓是程序员最热捧语言之一。 PHP 从诞生到现在已经有 20 多年历史,从 Web 时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、 GO 、 Python 不断地在挑战 PHP 的地位。这些技术的推动者非常热衷于唱衰 PHP , PHP 语言的未来在哪里?PHP 程序员当如何应对未来的变革? 作为老牌的 Web 后端编程语言,PHP 在全球市场占有率非常高,仅次于 Java ,从各个招聘网站的数据上来看 PHP 开发的职位非常多,薪资水平也非
FastCGI 最后一篇,我们将学习完剩下的所有配置指令。在这里,错误处理还是单独拿出来成为一个小节了,而剩下的内容都放到其它中进行学习。不要感觉是其它的就没用了,有些配置指令还是非常重要的哦,或许正好你现在的项目就能用上呢。
最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 查资料过程中发现没有文章把这两个队列以及怎么观察他们的指标说清楚,希望通过这篇文章能把他们说清楚一点 问题描述 JAVA的client和server,使用socket通信。server使用NIO。 间歇性的出现client向server建立连接三次握手已经完成,但server的selector没有响应到这连接。 出问题的时间点,会同时有很多连接出现这个问题。 selector没有销毁重建,一直用的都是一
使用CentOS 7.3安装Docker,可以参考这篇文章:《Centos7安装最新Docker》。
现在很多朋友都选择了linux服务器下配置LNMP(linux+nginx+mysql+php),这里分享下LNMP安装与配置方法,需要的朋友可以参考下
nginx + php 用于运行大部分php开发的网站。前几篇文章,都是是运行与docker下的。如果系统不方便使用docker,直接在系统内配置 nginx+php服务
领取专属 10元无门槛券
手把手带您无忧上云