LAMP架构(apache安装,apache工作原理介绍)

简介:

一、apache介绍。

apache是一个基金会的名字,httpd才是我们要安装的软件包,早起叫apache,从2.0版本开始叫apache。

apache官网:www.apache.org

下载三个软件

http://mirrors.cnnic.cn/apache/
apr和apr-util是一个通用的函数库,可以让HTTPd不关心底层的操作系统,很方便的移植,比如从Linux到windows

http://mirrors.cnnic.cn/apache/apr/

二、apache安装

分别解压三个软件

tar zxvf apr-***.tar.gz

tar zxvf apr-util-***.tar.gz

tar zxvf httpd-***.tar.gz


先安装apr
cd apr-***.tar.gz

./configure --prefix=/usr/local/apr

make && make install


在安装apr-util-***.tar.gz

./configure --prefix=/usr/local/apr-util

--with-apr=/usr/local/apr                  (指定apr,依赖apr)

make && make install

这里可能会出现一个问题,提示缺少expat的开发库,安装一下就好

yum install expat-devel -y


最后安装httpd-***.tar.gz

./configure --prefix=/usr/local/apr-util 

--with-apr=/usr/local/apr                      (指定apr,依赖apr)

--with-apr-util=/usr/local/apr-util               (指定apr-util,依赖apr-util)

--enable-so                                (支持动态加载模块,例如php)

--enable-mods-shared=most                      (指定加载哪些模块,most表示绝大多数)


make && make install

这里会提示缺少pcre,pcre是个Perl库.包括perl兼容的正则表达式


进入/usr/local/apache2.4中

bin下是可执行文件

conf 是配置文件所在目录

htdocs 存放了一个访问页,默认的访问网页

logs 日志相关的目录

man 帮助文档

modules 存放了扩展模块


/usr/local/apache2.4/bin/httpd -M    

/usr/local/apache2.4/bin/apachectl -M    都是查看apache加载了哪些模块


static 静态模块  和bin/httpd是绑定在一起的文件

shared 动态模块  是一个.so文件,是在modules目录下


/usr/local/apache2.4/bin/apachectl start  启动apache

netstat -lntp                    查看默认监听80端口,mysql默认监听3306端口,ssh默认监听22端口



apache的三种工作模式:
(1)prefork:prefork模式算是很古老但是非常稳定的apache模式。apache在启动之初,就先fork一些子进程,然后等待请求进来。之所以这样做,是为了减少频繁创建和销毁进程的开销。每个子进程只有一个线程,在一个时间点内,只能处理一个请求
优点:成熟稳定,兼容所有新老模块。同时,不需要担心线程安全问题
缺点:一个进程相对占用更多的系统资源,消耗更多的内存。而且,他并不擅长处理高并发请求,在这种场景下,它会将请求放进队列里,一直等到有可用进程,请求才会被处理
(2)worker:和prefork模式相比,worker使用了多线程和多进程的混合模式,worker模式也同样会先预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监控线程,每个请求过来会被分配到一个线程来服务。线程比进程更轻量,因为线程是通过共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下会比prefork有更多可用的线程,表现更优秀些
优点:占用更少的内存,高并发下表现优秀
缺点:必须考虑线程安全的问题,因为多个子线程是共享父进程的内存地址的。如果使用keep-alive长连接的方式,某个线程会一直被占据,也许中间几乎没有请求,需要一直等待到超时才会被释放。如果太多的线程,被这样占据,也会导致在高并发场景下的无服务线程可用
(3)event:它和worker模式很像,不同的是它解决了keep-alive长连接的时候占用线程资源被浪费的问题,在event模式中,会有一些专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务器的线程,执行完毕后,又允许它释放,增强了在高并发场景下的请求处理











本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2051401,如需转载请自行联系原作者
目录
相关文章
|
25天前
|
网络安全 Apache
Apache服务器安装SSL证书
Apache服务器安装SSL证书
25 0
|
17天前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
29 0
|
25天前
|
Linux Apache
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
16 0
|
2月前
|
Kubernetes 测试技术 Linux
ChaosBlade安装问题之安装双架构如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
|
2月前
|
运维 Linux Apache
LAMP架构调优(三)——模块的安装与调用
LAMP架构调优(三)——模块的安装与调用
9 0
|
2月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
199 2
|
2月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
14 1
|
2月前
|
运维 安全 Linux
LAMP架构调优(八)——Apache Worker模式调优
LAMP架构调优(八)——Apache Worker模式调优
9 0
|
4天前
|
存储 运维 负载均衡
探索微服务架构下的服务治理
【4月更文挑战第30天】 在当今软件开发领域,微服务架构已经成为了解决复杂系统问题的重要技术手段。随着微服务的广泛应用,如何有效管理与治理这些分散的服务成为了开发和维护的关键。本文将探讨在微服务架构下,实现高效服务治理的策略与实践,重点分析服务发现、配置管理、负载均衡和故障处理等核心要素,旨在为读者提供一套系统的服务治理思路。
|
1天前
|
JavaScript Java 持续交付
构建高效微服务架构:后端开发的新范式
【5月更文挑战第3天】 在现代软件开发的浪潮中,微服务架构以其灵活性、可扩展性和技术多样性而受到重视。本文深入探讨了如何构建一个高效的微服务系统,包括关键的设计原则、技术选型、以及实现细节。我们将通过分析微服务的核心概念,提供一套实用的步骤和最佳实践,以指导开发者构建出既健壮又易于维护的分布式系统。文章将重点讨论如何在保证系统性能和稳定性的前提下,实现服务的解耦与独立部署,从而推动后端开发工作流的优化和创新。

推荐镜像

更多