web中间件之apache

一、常见的web中间件(web容器)



https://www.jianshu.com/p/1e82b7a18866

  • apache
  • tomcat(springboot内置)
  • Jboss
  • Web Logic
  • lammp=linux+apache+mysql+php+pel

为什么要监控web中间件??

中间件监控看是否有性能瓶颈

核心:主要看中间件的线性池进程池有没有排队情况,请求是否处理及时就OK

二、apache



Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

我这里是yum安装的httpd,因为编译安装的只有一种工作模式,yum安装才能出来3种工作模式,这里yum安装比较容易切换工作模式,但是yum安装的httpd文件比较分散。

yum安装的三种工作模式:prefok;.event;.worker,也就是下面3个执行文件,默认是httpd这个文件的工作模式。

yum安装httpd的目录详解:

1、那么如何切换工作模式呢??如下...

把httpd的文件名改成其他的,把httpd.event改成 httpd 。其实默认的httpd本来的名字是 httpd.prefok

#killall -9 httpd  杀掉以前的httpd进程
#cd /user/sbin 
#mv  httpd  httpd.prefork  改名
#mv httpd.work   httpd 改名

2、apache配置文件和三种模式介绍。

配置文件是 /etc/httpd/conf下的httpd.conf  如下面图所示。

来看下配置文件详解,去掉注释的。

https://blog.51cto.com/wujunbin/2049622  博客链接

ServerTokens OS            ##不用管,操作系统版本
ServerRoot "/etc/httpd"    ##apache的安装路径,不用改
PidFile run/httpd.pid      ##在/etc/httpd/run/有一个httpd.pid,这个意思是pidfile会生成在这个路径下。启动的时候这个文件会生成现,这个文件在的话,apache会判定是启动;关闭后这个文件默认会删除,但是如果有时候apache异常关闭,方法不对,会导致这个文件没删除。接下来apache也启动不了,正确做法是手动删除
Timeout 60                 ##超时时间,这个超时时间是什么超时???在接收跟发送之前的超时,是请求过来了,tcp/ip连接已经连接了,但是没处理。这个不是connection-timeout,connection-timeout是客户端配置的,客户端发送请求,比如60秒内没连上,就是connection-timeout
KeepAlive Off              ##JMeter默认的长链接是on。长链接是啥子东西呢,比如说请求一个页面,用一个链接形成一个链接通道,用这个通道再去send和receive这个请求。复用长链接的话是不同请求页面用之前的那个链接通道,通道会被占住,下次要用的话再继续用这个通道。省去了重新建立链接和关闭链接的过程,但是,链接通道是有限的,占满了的话,其他的请求就不能继续进行链接了
MaxKeepAliveRequests 100   ##最大长链接的请求数,比如说我给300个并发,但是只有100个长链接,代表有200个并发连接不上长链接
KeepAliveTimeout 15        ##长链接的会话保持时间,在这个链接通道内,一个客户端隔了15秒还没发送下一个请求,则长链接就被释放(一般设置3-5秒就够了)
# prefork MPM              ##MPM是工作模式,默认为profork
Listen 90                  ##对外提供服务的端口号,apache默认为80
LoadModule…….so(一大堆)   ##加载的动态库
Include conf.d/*.conf      ##把配置文件conf.d文件夹内的以.conf结尾的文件包含进来,可以切换到conf.d文件夹看一看,默认有个welcome.conf,php.conf(php编译后生成的)*/
User apache                ##哪个用户
Group apache               ##用户组
ServerAdmin [email protected]
UseCanonicalName Off
DocumentRoot "/usr/local/zentaopms/www"     ##工程路径,就是代码往哪儿搁,就往这里放,把安装包往这里放就得了
<Directory "/var/www/html">                 ##跟工程路径保持一致
ErrorLog logs/error_log                     ##日志路径
LogLevel warn                               ##日志级别,有debug, info, notice, warn, error, crit,alert, emerg可选择。详细点的日志用debug,一般我们用info级别
CustomLog logs/access_log common            ##用户日志,一般被注释,可打开

##状态码不同的提示过着提示的路径内容如下,其内容可自行定制:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

监控的话,把下面俩的注释取消掉:且默认的Allow from .example.com 改成 Allow from all
如果httpd.conf没有以下内容,粘贴进去,就OK也可以加上监听效果
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from all
</Location>
ExtendedStatus On      ##这一行是详细的监听效果,不需要就不要加就ok
<Location /server-info>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from all
</Location>

  

apache是一种欲派生模式

1、查看端口占用命令

netstat -anp |grep 端口号

netstat -nultp(此处不用加端口号)

netstat -anp |grep 82查看82端口的使用情况

2、kill掉某个端口占用进程

3、重启某个服务

prefork:进程工作模式

配置apache的监控

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       8  //最小不能为1,改为30的时候,满足最小5,超过最大20的,就杀掉10个进程
MinSpareServers    5  // 最小空闲进程
MaxSpareServers   20  //最大空闲进程
ServerLimit      256  //一个进程的最大连接数
MaxClients       256 //改为0,就不会杀死
MaxRequestsPerChild  4000
</IfModule>
Current Time: Saturday, 06-Jul-2019 20:02:29 CST
Restart Time: Saturday, 06-Jul-2019 20:02:13 CST
Parent Server Generation: 0
Server uptime: 16 seconds
1 requests currently being processed, 10 idle workers
__________W.....................................................
................................................................
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

PID Key:
   2151 in state: _ ,   2152 in state: _ ,   2153 in state: _
   2154 in state: _ ,   2155 in state: _ ,   2156 in state: _
   2157 in state: _ ,   2158 in state: _ ,   2159 in state: _
   2160 in state: _ ,   2161 in state: W ,

这是一个守护进程。

worker:线程工作模式 ,多进程多线程

正常工作中是编译安装,编译时指定工作模式,切换工作模式重新编译安装。

yum切换工作模式。

#killall -9 httpd  杀掉以前的httpd进程
#cd /user/sbin 
#mv  httpd  httpd.prefork  改名
#mv httpd.work   httpd 改名

# worker MPM
# StartServers: initial number of server processes to start  //刚启动的进程数
# MaxClients: maximum number of simultaneous client connections //最多启动的进程数
# MinSpareThreads: minimum number of worker threads which are kept spare  //
# MaxSpareThreads: maximum number of worker threads which are kept spare  //
# ThreadsPerChild: constant number of worker threads in each server process  //
# MaxRequestsPerChild: maximum number of requests a server process serves  //
<IfModule worker.c>
StartServers         4   // 初始起4个进程                              2
MaxClients         300   //  最大连接数
MinSpareThreads     25   //  最小空闲线程数,不满足起一个进程,而不是起线程。60
MaxSpareThreads     75   //  最大空闲线程数, 杀进程杀一个进程            80
ThreadsPerChild     25   //每个进程下起25个线程                         30
MaxRequestsPerChild  0   //一个进程的最大请求数,比如一个进程接受的请求数大于这个数字,这个进程处理完就自动关了。
</IfModule>

如果配置改错了,不满足最小起进程大于最大线程空闲数,则需要kill进程,kill掉又小于最小的,矛盾了。apache有个容错机制,在满足最大线程上加一个进程???如上后面的配置。

java是单进程,多线程。

三、tomcat

1、tomcat8、9配置用户名密码,博客

https://blog.csdn.net/guochunyang/article/details/51820066

https://www.cnblogs.com/dadonggg/p/10033275.html

2、tomcat监听

工作模式:

同步、异步、apr

线程池默认最大200。

打印时间:接口时间,tomcat处理时间,比较,如果相差较大,则是cpu排队导致。

四、nginx

nginx缺点,负载均衡时,nginx和负载的tomcat集群,session不共享。

apache+tomcat可以实现session共享。

nginx五种负载均衡模式。

原文地址:https://www.cnblogs.com/wuzm/p/11142023.html

时间: 2024-08-29 23:57:38

web中间件之apache的相关文章

金笛web中间件日志记录如何清空

web中间件日志记录过大会造成卡顿现象,所以需要手动清理下日志记录,只需一步即可完成. 清除路径:找到数据库表smssever_out,删除即可,如图 清理完之后,重启web中间件,很明显的感觉顺畅了很多!

金笛短信猫+web中间件——如何发工资条

很多企业发工资还采用打印裁剪纸质工资条的方式,这种方式比较费时费事,如果企业人比较多,工作量比较大.金笛提供短信设备+软件方式,通过短信方式把工资单下发到员工手机上,既安全又省时间,成为越来越多的公司的首选. 手机短信已经成为目前最安全最可靠的通讯方式.短信通过存储转发的机制,提供高可靠的.100%兼容各种手机的数据业务,其及时.廉价.方便的沟通功能,成为企业发工资的首选方式. 金笛短信利用短信猫+WEB中间件服务于山东鲁能集团等企业用于工资条的发送,原来需要几天才能完成的工作,现在只需要几分钟

web服务器、Web中间件和Web容器的区别

web服务器>web中间件>web容器 Tomcat(servlet容器)  是  Tomcat中间件  也是  Tomcat服务器 看了谢公子的csdn文章,让我彻底分清了这三者的区别. 因此我把这篇文章分享于此 : https://blog.csdn.net/qq_36119192/article/details/84501439 原文地址:https://www.cnblogs.com/-chenxs/p/11368017.html

Web中间件漏洞

Nginx文件解析漏洞端口:80 攻击方法: 解析漏洞 目录遍历 CVE-2016-1247:需要获取主机操作权限,攻击者可通过软链接任意文件来替换日志文件,从而实现提权以获取服务器的root权限.参考: https://www.seebug.org/vuldb/ssvid-92538 漏洞等级 高危 漏洞描述 nginx文件解析漏洞产生的原因是网站中间件版本过低,可将任意文件当作php可执行文件来执行,可导致攻击者执行恶意代码来控制服务器. 漏洞危害 机密数据被窃取: 核心业务数据被篡改: 网

Web中间件常见漏洞总结

一.IIS中间组件: 1.PUT漏洞 2.短文件名猜解 3.远程代码执行 4.解析漏洞 二.Apache中间组件: 1.解析漏洞 2.目录遍历 三.Nginx中间组件: 1.文件解析 2.目录遍历 3.CRLF注入 4.目录穿越 四.Tomcat中间组件: 1.远程代码执行 2.war后门文件部署 五.jBoss中间组件: 1.反序列化漏洞 2.war后门文件部署 六.WebLogic中间组件: 1.反序列化漏洞 2.SSRF 3.任意文件上传 4.war后门文件部署 七.其它中间件相关漏洞 1

自己动手打造WEB服务器 Windows + Apache + PHP + MySQL

XWAMP并不打算打造一个多功能,零配置,方便调试的工具.XWAMP只是把原程序简单的组合在一起,利用CMD命令控制,真正的绿色版,只为了多学习点Windows + Apache + PHP + MySQL相关的知识. 官方网站:http://www.xwamp.com/. Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个

Web服务器(Apache)与Servlet容器(Tomcat)

之前一直比较迷惑Apache与Tomcat的关系,通过查询资料,有所了解,现记录于此. Apache与Tomcat 两者定位:Apache是HTTP Web服务器,Tomcat是Web容器. 有一个非常形象的比喻:Apache是一辆车,可以装载静态的物件(HTML静态网页等):但不能装动态的水(JSP.CGI等),要装水就需要桶(容器),当然桶也可以不放在车上而单独存放,则该容器即为Tomcat. 两者的主要区别: Apache是世界上最流行的Web服务器(其次是微软的IIS),可以处理浏览器的

Apache、Web软件、Apache安装、常用配置项、区域配置、日志分析

Apache 安装 具体步骤: 1.准备工作 为了避免发生端口冲突.程序冲突等现象,建议将使用rpm方式安装的httpd及相关依赖包(如果有的话)卸载.如图所示: 2.源码编译及安装 插入安装光盘并挂载,进入到光盘目录中,将httpd源码包释放到/usr/src/目录下,并且切换到展开后的源码目录中. 根据服务器的实际应用需要,可以灵活设置不同的定制选项. 上述配置命令中,各选项的含义如下: --prefix:指定将httpd服务程序安装到哪个目录. --enable-so:启用动态加载模块支持

Web服务器(Apache)虚拟主机的配置

一.定义    所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB.FTP.Mail等服务.    二.虚拟主机的实现方法有三种:    基于IP的方法,基于主机名的方法和基于端口的法官法.    ①基于IP的方法:    在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上.访问不同的IP,就看到不同的网站.    ②基于端口的方法:    一个IP地址,通过不同的端口实在不同网站的访问.    ③基于主机名的方法: 设置多个域名的A记录,使它们解析到同一个IP地址上