周日的雨淅淅沥沥下个不停,整整一个白天,闲来无事,在家继续分享linux系统的一些知识点。
在linux下的www服务以apache为例:
在中小企业规模下;
①源码编译方式安装。
优势在于:比较灵活,只编译所需要的参数。
②yum或rpm方式安装。
优势在于:简单、方便,但是不够灵活。
适用于:1>.访问量小或者内部使用http的时候,多用yum install httpd-y (不对 外,做好的软件包大于所需的需求!)
2>.追求方便的时候,可以yum安装。(方便性考虑。)
3>维护成本考虑,服务器数量,比如几千台服务器安装apche.
③高级安装结合了编译和Yum/rpm的双重优点。(有难度,复杂程度高。)
内部运维人员通过源码(根据自身业务需求)–制作成符合企业需求的rpm包,然后放到自己定制的yum仓库中去,通过网络,客户端可以用Yum实现批量部署,管理、升级。
Apache介绍:
apache特点如下:
但是在处理静态小文件能力还是不及Nginx。
安装Apache:
在centos6.5版本中,针对此次试验安装我们安装apache的2.2的版本。
apache官方网站:http://www.apache.org/
选择2.2这个版本。
http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
我们下载完成后,将软件放置到用户家目录下,一定要养成良好的习惯。
我下载到本地后,利用rz -y 上传到相应目录中去:
我先看看我上传的文件有多大?
经过查看文件在7.4M大小。 而nginx在1-2M左右呵呵。
软件安装无非就是三大步骤:./configure ——->make—–>make install
开始进行解压操作:并进入到软件目录当中去。
注意图中的两个软件,(针对安装陌生软件可以查看)
在安装之前,把先决条件给准备好:zlib软件给安装好:
[root@Centos-6 httpd-2.2.34]# yum install zlib zlib-devel -y
检查后安装成功:
那么这个zlie-devel是什么呢?
检查完先决条件之后,我开始进行编译安装apache
还是刚才说过的,对于陌生软件,我们可以查看INSTALL和README这两个软件进行查看:
在其中都能告诉我们如何安装:
在这里面的 \代表的是换行的意思。
./configure \
–prefix=/application/apache2. 2.34 \ 表示指定apache的安装路径,其安装目录会自动生成。
–enable-deflate \ 压缩成包,提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。缺点就是消耗CPU,所以对文本压缩效率会更高一些!以至于图片、视频什么的,就不建议了。
–enable-expires \通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。缺点在于网站更新后这里面的缓存还是旧的。
–enable-headers \提供允许对HTTP请求头的控制。
–enable-modules=most \激活大多数模块。
–enable-so \ 激活apache服务的DSO(Dynamic Shared Objects动态共享目标),即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。
–with-mpm=worker \选择apache mpm的模式为worker模式。为worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。而系统 资源的开销小于基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。 (针对两者模块功能分类来说: worker 模块占用的内存比较小,对于流量较大的网站来说,是一个比较好的选择,prefork 虽然占用较大的内训,不过速度与worker 差异不大,摒弃prefork 的内存使用设计较为优秀,可以在很多无法提供debug的平台上进行自我排错,进程稳定而线程不稳定,工作中选择worker 也可以,因为它的并发要高一些。)
–prefix=/usr/local/apache2表示指定apache的安装路径,默认安装路径为/usr/local/apache2
具体编译源码为:
./configure \
–prefix=/application/apache2.2.34 \
–enable-deflate \
–enable-expires \
–enable-headers \
–enable-modules=most \
–enable-so \
–with-mpm=worker \
–enable-rewrite \
CD到软件目录下:进行源码编译
我在做实验是出现以下问题:machine `2.34′ not recognized。
故障原因在于:有个多余的空格。
调整好具体配置文档,检查是否编译安装成功办法:
①肉眼观察,是否出现error报错提示
②用echo $? 问号来检测,如果返回值是0,就代表安装成功。
检测安装正确后,别忘记还要用make 安装:
最后一步: make install 来生成文件的过程。
至此,apache安装工作完成。
下面,我来看下apache的安装目录:类似于windows下安装某个程序的目录。
为了方便,也是我自己的个人习惯,我先做了个软链:
并且查看安装apache的安装目录“:
三大步骤安装完成之后,我们接下来要把apache服务器启动起来
启动之前,一定要注意启动的路径,并检查语法是否正确:
[root@Centos-6 ~]# /application/apache/bin/apachectl -t
正式启动apache服务:
[root@Centos-6 ~]# /application/apache/bin/apachectl start
启动apache服务之后,必须要养成检查此服务的端口是否起来,既然是为WEB服务,默认的端口定是80端口
也可以查看进程的方式查看服务:httpd的服务
客户端和web服务器网络通讯正常:打开浏览器访问192.168.8.188 ,出现以下页面,证明apache服务安装成功!
在没有安装成功的情况下,排故思路:
①selinux 防火墙是否关闭?
②httpd的端口、进程是否正常?
③web服务器本地利用 curl wget 去检查。
安装成功后,只是完成了一小步,剩下的我分享下httpd服务的一些参数:
/application/apache/bin/apachectl 来获取它的参数:
– l : 代表的是查看编译可哪些模块.
[root@Centos-6 ~]# /application/apache/bin/apachectl -l
其中有些参数,是我们刚才经过源码安装配置过的!也做了一些说明。
-M:代表的是模块的的静/动态的状态,后续增加模块要用DSO的方式!
/application/apache/bin/apachectl -M
有时,在查看软件运行很慢的抢情况下,我们完全可以利用一个追踪的命令来追踪到这个运行慢原因的节点位置!这个命令在后期运维用的非常广泛,这里我只是稍微介绍下。
strace /application/apache/bin/apachectl -M
以上只是介绍了一些到目前为止的重要参数,还有很多,后续会详细分享出来!
部署简单的站点
首先,我要先CD到http的安装目录下面去,我这里切到软链!
里面有很多我们以后要配置的文件:
例如,
bin :二进制文件。
conf: 配置文件。
logs:日志文件
modules:模块文件。
修改主配置文件:
[root@Centos-6 apache]# cd conf/
接下来,了解下apache软件默认的网站根目录(和Linux系统的根目录是两个概念!)
[root@Centos-6 conf]# cd ..
[root@Centos-6 apache]# ls -l
[root@Centos-6 apache]# cd htdocs/
其中htdocs 是存放网站默认的根目录的文件。
这里建议不要更改其默认文件:改了的话就浏览器打不开
然后我利用CRT来上传一个:我之前编制好的au.html文件。
[root@Centos-6 htdocs]# rz -y
rz waiting to receive.
开始 zmodem 传输。 按 Ctrl C 取消。
100% 601 bytes 601 bytes/s 00:00:01 0 Errors
为了能让这个HTML文件在首页中显示,先暂时将文件的名字改为默认的index.html的名字。
最后在那客户端去浏览:
至于乱码的问题,是linux不兼容中文的故障!
静态的程序不需要重启服务,其他的(假如要把这个默认的index.html改成自己命名的文件时,就会改变网站目录架构,你所命名的文件就会出现在二级目录中来!目录结构一旦暴露出来,就会造成危险!)需要注意重启服务!