Linux Apache服务(一)
一、Apache简介
“Apache HTTP Server”是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux,UNIX,Windows等多种操作平台中
二、Apache的特点
- 开放源代码:这是APache最重要的特性之一,开源免费,这也是在国内很火的重要原因。
- 跨平台应用:这个特性得益于APache的源代码开放,APache服务器可以运行在绝大多数的软硬件平台上。
- 支持各种web编程语言:支持perl,PHP,Python,java等,甚至微软的ASP技术的可以使用。
- 模块化设计:APache并没有将所有功能集中在单一服务器中,而是尽可能的通过标准的模块化设计实现专有的功能
- 运行稳定:APache服务器可用于构建具有大负载访问量的Web站点,并具有很高的安全性。
三、Centos6和Centos7自带的Apache版本
Centos6:httpd2.2
Centos7:httpd2.4
四、Apache的安装方式
- rpm安装
- 编译安装
- yum安装
五、Centos6 Apache程序环境
3.1 配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
3.2 服务脚本
/etc/rc.d/init.d/httpd
配置文件:/etc/sysconfig/httpd
3.3 主程序文件
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
3.4 日志文件目录
/var/log/httpd
/var/log/httpd/access_log 访问日志
/var/log/httpd/error_log 错误日志
3.5 站点文档目录
/var/www/html
3.6 模块文件路径
/usr/lib64/httpd/modules
3.7 配置文件的组成
[root@Server ~]# grep "Section" /etc/httpd/conf/httpd.conf ### Section 1: Global Environment ### Section 2: 'Main' server configuration ### Section 3: Virtual Hosts
3.8 配置格式
directive value
directive: 不区分字符大小写
value:为路径时,取决于文件系统
六、服务搭建
6.1 使用yum安装Apache
1 [root@Server ~]# yum -y install httpd httpd-manual
6.2 启动apache服务
6.2.1.先编辑一下配置文件/etc/httpd/conf/httpd.conf,在ServerName 那一行加上localhost:80 否则在启动服务的时候会报错
[root@Server ~]# vim /etc/httpd/conf/httpd.conf #ServerName www.example.com:80 ServerName localhost:80
6.2.2 启动httpd服务
[root@Server ~]# service httpd start
正在启动 httpd:
6.3 关闭SELINUX和iptables防火墙
[root@Server ~]# service iptables stop [root@Server ~]# setenforce 0
6.4 重启httpd服务并用浏览器进行测试
[root@Server ~]# service httpd restart
停止 httpd: [确定]
正在启动 httpd: [确定]
七、Apache配置详解
7.1 基本配置
1.基本配置
ServerRoot "/etc/httpd" //apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。 PidFile run/httpd.pid //第一个httpd进程(所有其他进程的父进程)的进程号文件位置。
Timeout 60 //设置连接超时,参数timeout,当连接超过一定的空闲时间,就会自动断开
KeepAlive On //设置keepalive,提高网络效率,默认是关闭的
MaxKeepAliveRequests 100 //设置keepaliverequest,设置为0 的时候没有限制,不过最好还是用默认值,或者自己根据情况来改变
Listen 80 //服务器监听的端口号。 ServerName localhost:80 //主站点名称(网站的主机名)。 ServerAdmin admin@clusting.com //管理员的邮件地址。 DocumentRoot "/var/www/htdocs" //主站点的网页存储位置。
DirectoryIndex index.html index.html.var //设置网站主页文件
AddDefaultCharset UTF-8 //设置字符集,参数AddDefaultCharset
,建议最好设置utf-8,这是通用的。
2.对网站目录或文件进行访问控制
<Directory "/var/www/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
在上面这段目录属性配置中,主要有下面的选项:
- Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:
ExecCGI: 在该目录下允许执行CGI脚本。
FollowSymLinks: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用 户。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
- AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):
None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。
All: 在.htaccess文件中可以使用所有的指令。
- Order:控制在访问时Allow和Deny两个访问规则哪个优先:
Allow:允许访问的主机列表(可用域名或子网,例如:Allow from 192.168.0.0/16)。
Deny:拒绝访问的主机列表。
3. 服务器的优化 (MPM: Multi-Processing Modules)
apache2主要的优势就是对多处理器的支持更好,在编译时同过使用–with-mpm选项来决定apache2的工作模式。如果知道当前的apache2使用什么工作机制,可以通过httpd -l命令列出apache的所有模块,就可以知道其工作方式:
prefork:如果httpd -l列出prefork.c,则需要对下面的段进行配置:
<IfModule prefork.c> StartServers 5 #启动apache时启动的httpd进程个数。 MinSpareServers 5 #服务器保持的最小空闲进程数。 MaxSpareServers 10 #服务器保持的最大空闲进程数。 MaxClients 150 #最大并发连接数。 MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。 </IfModule>