5月24中间件—整合Apache、tomcat、Nginx

Apache、tomcat、Nginx

Apache:是一个web服务器,解析php服务、有php组件作为php容器、请求容器需要有连接数,最大连接数|最小连接数,有多少人可以连接超过了就得排队。

Apache重点

1、安装yum  -y  install  httpd

2、修改配置文件—/etc/httpd/conf/httpd.conf

3、监控—配置status状态在网页上查看各个状态。

4、调优—工作模式、最大、最小连接数、生命周期。

修改配置文件路径:/etc/httpd/conf/httpd.conf。修改工作模式—修改里面的最大最小进程、端口号。

开源配置文件一般是模板提供一些基础的、还有一些路径。

工作模式:worker、Prefork,优化就是改成worker工作模式1:n

两种切换工作模式—yum安装

cd /usr/sbin

ls  httpd.*

./httpd Tab

./httpd  -V  查看工作模式

 

工作模式介绍

prefork:进程数

Worker模式优缺点

优点:占据更少的内存,高并发下表现更优秀。

缺点:必须考虑线程安全的问题,因为多个子线程是共享父进程的内存地址的。如果使用keep-alive的长连接方式,也许中间几乎没有请求,这时就会发生阻塞,线程被挂起,需要一直等待到超时才会被释放。如果过多的线程,被这样占据,也会导致在高并发场景下的无服务线程可用。

优化方法:工作模式改成worker模式—提高支持我们的线程数。把每个进程支持的线程提高,前提确定cpu能够处理。

Prefork:多进程模式、一个进程对应一个线程,进程超过最大空闲值时,如果服务器进程满了再来请求如何处理(排队等待)等待超时或者处理完了、排队的就可以使用。

长链接:例如视频和聊天

注意:进程不能全部打满、这样影响cpu运行、占用内存

Max:最大空闲数超过了就杀死进程

Min:最小空闲数小于了就重启进程

ServerLimit256  支持最大的并发256超过了就排队

MaxClient256   支持最大的并发256超过了就排队

MaxRequestsPerChild:4000 防止内存溢出

Worker:多进程多线程—一个进程能启动多个线程1:n缺点:线程公用进程内存,如果一个线程蹦了会导致进程下的所有线程崩。

cd   /opt/lampp/etc/extra

Vim   httpd-mpm.conf  

1、启动多少个进程

2、最小多少空闲个线程

3、最大多少空闲个线程

4、ThreadsPerChild:一个线程启动多少个线程数

5、MaxRequestWorkers:每个进程接收多少个请求

6、MaxConnectionPerChild:长链接、生命周期

换算:MinspareThreads < StartServers*ThreadsPerChild > MaxRequestWorkers

如果小于最小线程数就启动进程、如果大于最小线程数就杀死进程

优化目的:

同一时间处理请求数多了排队的就少了—客户端发送请求立马请求不用排队、还要看看有没有长链接情况

监控

启动失败

Apache判断进程是否存在根据pid进行判断—pid进程号杀死进程号、再看端口号是否冲突

Tomcat

1、安装—解压安装包

2、配置—修改端口号(shutdown 端口号8005、http请求8080、ajp8009)

3、监控—tomcat_user.xml 修改用户名和密码然后点击查看状态。访问ip:8080    页面server status按钮、页面可以看到线程数。。。。jvm后期用图形化工具来看

4、调优—修改配置文件/opt/apache-tomcat-8.5.41/conf/server.xml

java项目

1、war包放到 webapps里

2、配置文件*.properties    查找find ./|grep properties

 

Nginx

1、安装

1、安装依赖环境

yum -y install gcc automake autoconf libtool make

yum -y install gcc gcc-c++  pcre-devel openssl openssl-devel

2、安装pcrezlib,前者为了重写rewrite,后者为了gzip压缩。

    解压后切换到对应的目录

[root@localhost ~]# tar -zxvf pcre-8.41.tar.gz  

[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre

[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/zlib

[root@localhost pcre-8.41]# make && make install

3、安装openssl—这个不需要编译安装

下载文件里有此安装包—只需要解压即可

[root@localhost ~]# tar -zxvf openssl-1.0.1t.tar.gz

4Nginx安装

下载地址:http://nginx.org/en/download.html

[root@localhost ~]# tar -xvf nginx-1.13.8.tar

[root@localhostnginx-1.13.8]#./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_stub_status_module

[root@localhost nginx-1.13.8]#make && make install

5、启动

/usr/local/nginx

./nginx

 

查看配置文件

vi nginx.conf

修改哪个位置要看好

状态配置

yum安装 --但是yum源容易变化

yum  -y  install  wget

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

yum makecache

yum  -y  install  nginx

启动nginx:service   nginx   start

修改端口号—配置文件位置:vi     /etc/nginx/conf.d/default.conf

 

posted @ 2019-05-24 19:31  大佳佳  阅读(620)  评论(0编辑  收藏  举报