1、当前互联网主流web服务说明
静态服务:
- apache 中小型静态web服务的主流,web服务器中的老大哥
- nginx 大型新兴网站静态web服务主流,web服务器中的初生牛犊
- lighttpd 静态web服务不温不火,逐渐被淘汰的意味,社区不活跃
动态服务:
- IIS(Internet information services) 微软的WEB服务器(asp,aspx)
- tomcat #中小型企业动态web服务主流,互联网java容器主流(jsp,do)
- resin #大型动态web服务主流,互联网java容器主流(jsp,do)
- php(fcgi) #大中小网站,php程序的解析容器
- 配合apache,php不是守护进程,而是mod_php5.so(module)
- 配合nginx,lighttpd,php守护进程模式,FCGI模式
2、软件的常见版本
apache version
- 1.3 系列
- 2.0 系列
- 2.2 系列
- 2.4 系列
apache官网:http://apache.org
nginx
- 1.8 系列
- 1.9 系列
nginx官网:http://www.nginx.org/
3、linux系统软件包安装方式
以安装apache为例
-
源码编译方式安装apache:比较灵活,只编译你想要的参数
比喻自己做饭、做菜吃
-
yum或rpm方式安装apache
优点:简单,方便
缺点:不够灵活 --比喻:下饭店吃饭
- 功能和使用情况考虑,访问量小或内部使用的http的时候,多用yum install httpd -y
- 方便性考虑的使用,使用yum 安装
- 维护成本考虑,服务器数量,比如上千台服务器
-
高级安装结合编译和yum/rpm的双重优点
通过源码(根据业务需求)-->制作成符合你自己的rpm-->放到自己的yum仓库
然后在全网的客户端通过yum实现批量部署,管理,升级
老男孩老师学生分享:
rpm包制作介绍及实战操作讲解:
http://oldboy.blog.51cto.com/2561410/1121725
http://oldboy.blog.51cto.com/2561410/1121745
yum源及yum仓库搭建:
4、源码安装apache过程
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.31.tar.gz
tar xf httpd-2.2.31.tar.gz
cd httpd-2.2.31
./configure --prefix=/application/apache2.2.31 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite
make
make install
/application/apache/bin/apachectl start
/etc/init.d/iptables stop
setenforce 0
[root@A bin]# wget 192.168.1.113
--2016-01-01 15:35:53-- http://192.168.1.113/
正在连接 192.168.1.113:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:44 [text/html]
正在保存至: “index.html”
100%[======================================================================================================>] 44 --.-K/s in 0s
2016-01-01 15:35:53 (3.51 MB/s) - 已保存 “index.html” [44/44])
[root@A bin]# curl -I 192.168.1.113
HTTP/1.1 200 OK
Date: Fri, 01 Jan 2016 07:36:35 GMT
Server: Apache/2.2.31 (Unix) DAV/2
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "6103b-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
5、/application/apache/bin下的一些命令介绍
ab #Apache Http服务器性能测试工具,简单,易用。同类软件还有jmeter loadrunner,webbench
apachectl #这个是apache的启动命令,需要重点掌握,apachectl是一个脚本。
apxs #apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,在进行DSO方式编译模块时会用到,
#后文在编译pap软件时就用到了此命令,如 --with-apxs2=/application/apache/bin/apxs
htcacheclean#这是清理磁盘缓冲区的命令,需要在编译时指定相关参数才可使用,一般用的很少
hapasswd #建立和更新基本认证权限,如配置nagios等参数监控服务器会用到
httpd #http为apache控制命令程序,apachectl执行会调用httpd
rotatelogs #apache自带的日志轮询命令,也还可以用,但是老男孩的工作场景习惯由cronolog代替。
6、httpd.conf
apache的主配置文件,这个文件我们会经常访问修改,其中的每一行的参数作用都应该清楚明白。
7、htdocs
这是编译安装时apache的默认站点目录,前面已经说明。
index.html #默认的首页文件,在实际环境中,大家习惯用index.html index.php index.jsp 来做网站首页。首页文件名字是在httpd.conf中事先定义好的,具体参数为:DirectoryIndex index.html
logs #这是apache默认的日志路径,包括错误日志及访问日志。
|--access_log #这是apache的默认访问日志文件,使用tail -f access.log可以时时观看网站用户访问情况信息。
|--error_log #这是apache的错误日志,如果apache出现故障等问题,一定要看看这个错误日志。
|--httpd.pid #httpd的pid文件,php进程启动后,会把所有进程的ID号写到此文件。
|--modules #apache的模块目录,比如php,memcache等模块编译后都在这里。