部署环境(关闭防火墙、selinux)
[root@miner_k ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
安装服务并启动
[root@miner_k ~]# yum list | grep httpd
httpd.x86_64 2.2.15-59.el6.centos base #安装包
httpd-manual.noarch 2.2.15-59.el6.centos base #帮助手册
安装httpd
[root@miner_k ~]# yum -y install httpd
启动httpd服务
[root@miner_k ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for miner_k
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
帮助文档的查看
通过Apache的官网查看
http://httpd.apache.org/
查找方法:http://blog.youkuaiyun.com/miner_k/article/details/70049276
在本地查看
[root@miner_k ~]# yum -y install httpd-manual
[root@miner_k ~]# service httpd restart
本地查看的URL:http://IP地址/manual/
配置文件的修改:
[root@miner_k ~]# grep "Section" /etc/httpd/conf/httpd.conf
### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts
第一部分:全局环境配置
[root@miner_k ~]# vim /etc/httpd/conf/httpd.conf
ServerTokens OS #Configures the Server HTTP response header
ServerRoot "/etc/httpd" #软件的安装位置
PidFile run/httpd.pid #pid文件的存放位置
Timeout 60 #接受和发送的请求超时时间
KeepAlive Off #长连接是否开启
MaxKeepAliveRequests 100 #最大请求次数
KeepAliveTimeout 15 #同一个用户同一个连接的请求超时时间
Apache的三种模式:
多处理模块(MPM: Multi-Processing Modules)
apache2主要的优势就是对多处理器的支持更好,在编译时同过使用–with-mpm选项来决定apache2的工作模式。如果知道当前的apache2使用什么工作机制,可以通过httpd -l命令列出apache的所有模块,就可以知道其工作方式:
prefork:如果httpd -l列出prefork.c,则需要对下面的段进行配置:
<IfModule prefork.c> #如果加载prefork模块
StartServers 5 #启动apache时启动的httpd进程个数。
MinSpareServers 5 #服务器保持的最小空闲进程数。 如果空闲进程少于5,要开启新的进程
MaxSpareServers 10 #服务器保持的最大空闲进程数。 如果空闲进程大于10,要 关闭多余的进程
ServerLimit 256 #maxclient的最大值,调整之后将服务关掉,然后将进程kill之后才能生效
MaxClients 150 #最大并发连接数。
MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。
</IfModule>
在该工作模式下,服务器启动后起动5个httpd进程(加父进程共6个,通过ps -ax|grep httpd命令可以看到)。当有用户连接时,apache会使用一个空闲进程为该连接服务,同时父进程会fork一个子进程。直到内存中的空闲进程达到MaxSpareServers。该模式是为了兼容一些旧版本的程序。我缺省编译时的选项。
worker:如果httpd -l列出worker.c,则需要对下面的段进行配置:
<IfModule worker.c>
StartServers 2 #启动apache时启动的httpd进程个数。
MaxClients 150 #最大并发连接数。
MinSpareThreads 25 #服务器保持的最小空闲线程数。
MaxSpareThreads 75 #服务器保持的最大空闲线程数。
ThreadsPerChild 25 #每个子进程的产生的线程数。
MaxRequestsPerChild 0 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。
</IfModule>
该模式是由线程来监听客户的连接。当有新客户连接时,由其中的一个空闲线程接受连接。服务器在启动时启动两个进程,每个进程产生的线程数是固定的(ThreadsPerChild决定),因此启动时有50个线程。当50个线程不够用时,服务器自动fork一个进程,再产生25个线程。
三种模式的切换
配置文件的修改(使用哪种模式就将最前面的“#”去掉,将其他两个注释):
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
监听端口配置文件包含内容
Listen 80 #监听的端口
Include conf.d/*.conf #其他配置文件的目录
User apache #所属的用户名
Group apache #所属组