apache配置文件httpd.conf----小白福利

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cx55887/article/details/85793171

一、安装apache

  1. 首先yum方式安装http2.2
# yum install httpd -y
	
httpd的主要目录
		/etc/httpd/conf/httpd.conf   主配置文件
		/etc/httpd/conf.d            子配置文件目录
		/var/log/httpd/              日志文件目录(access.log error.log)
		/etc/httpd/modules           模块文件的目录
		/var/www/html                默认网站根目录
  1. 启动httpd
	# service httpd start
	# chkconfig httpd on
	# chkconfig --list httpd

二、配置文件/etc/httpd/conf/httpd.conf

配置1:配置prefork模块功能

<IfModule prefork.c>               <<< 判断是否在使用prefork模块,如果在使用,那么下面的参数生效
	StartServers       8           <<< 启动httpd的时候,启动几个子进程
	MinSpareServers    5           <<< 最少空闲子进程数
	MaxSpareServers   20           <<< 最多空闲子进程数
	ServerLimit      256           <<< 最多活动子进程数
	MaxClients       256           <<< 最大并发数
	MaxRequestsPerChild  4000      <<< 设置当子进程处理了多少个请求后,就立刻回收该子进程
</IfModule>

配置2:配置长连接功能

KeepAlive Off|On               
MaxKeepAliveRequests 100           <<< 长链接处理请求的最大值,超过则断开keepalive
KeepAliveTimeout 15                <<< keepAlive的断开时间

配置3:配置httpd监听的套接字

Listen 80                          <<< 监听所有IP的80端口
Listen 10.220.5.190:80             <<< 监听10.220.5.190的80端口

配置4:配置worker模块功能

<IfModule worker.c>
StartServers         4             <<< 启动4个子进程          
MaxClients         300             <<< 最大并发数
MinSpareThreads     25             <<< 最少空闲线程数  
MaxSpareThreads     75             <<< 最多空闲线程数  
ThreadsPerChild     25             <<< 每个子进程可以创建多个线程
MaxRequestsPerChild  0             <<< 设置当子进程处理了多少个请求后,就立刻回收该子进程(0永不回收)
</IfModule>

配置5:配置DSO

模块

装载:LoadModule ModuleName /path/to/module


补充:
httpd -M:显示所有模块(包括DSO 和 非DSO模块)
httpd -l:显示仅仅是可以使用的非DSO模块

配置6:配置网站根目录

DocumentRoot
默认:/var/www/html

说明:
	访问网站的时候,比如10.220.5.180 的是,默认是去网站根目录下找资源,也就是/var/www/html找资源
	现在资源/var/www/html下的jd目录中,因此找资源的方式,就需要在ip后指定资源所在的目录

配置7:配置默认主页

当客户端没有指定要请求哪个文件,那么就自动发送给客户端一个默认文件,这就是默认首页
DirectoryIndex  

配置8:访问控制

<Directory /path/to/control>
控制的范围:
	整个网站做控制
	网站的某个页面、目录做控制
</Directory>


options
	FollowSymLinks:允许通过符号连接的方式来访问网站根目录下的资源的文件
	Indexes:如果用户没有指定所请求的文件,而且系统中也找不到默认首页,则将全部的文件列表返回给用户

AllowOverride
	指定各个目录下的.htaccess中的控制指令是否可以覆盖掉主配置文件中的控制指令
	None:忽略各个目录下的.htaccess
	All:用各个目录下的.htaccess中的配置覆盖掉主配置文件中的控制指令
	AuthConfig:实现基于用户名/密码的访问控制


对用户的访问控制
1. 基于IP的访问控制
2. 基于用户和密码的访问控制

配置9:基于IP的访问控制

Order:指定次序
	Order Allow Deny
	Order Deny Allow
	【后面的那个是默认值】

Allow from 指定允许访问的主机列表
Deny from 指定禁止访问的主机列表
【多条规则的组合结果】

指定主机列表
	192.168.5.123
	192.168.5.0/24
	192.168.5

例子
    Order Allow Deny
    Allow from 192.168.5.123 192.168.5.124 
    Deny from 192.168.5.123
    
   
Order Allow Deny
	只匹配到allow,按allow处理
	只匹配到deny,按deny处理
	如果两个都匹配到了,则按照默认规则处理
	如果两个都没有匹配到了,则按照默认规则处理

配置10:用户目录

每个系统用户的家目录其实都可以做成一个网站的根目录,访问该用户家目录下的网站的方式
http://ip:port/~userName

配置11:日志

访问日志:
	定义:
		日志格式:LogFormat 格式信息  格式名称
			%h:远程主机的IP地址
			%t:请求时间
			%l:客户端登录网站所用的用户名,客户端没有登录,显示 -
			%u:远程用于做身份认证的用户名,如果没有做认证,显示 -
			%r:请求报文的第一行(请求方法,请求的uri,请求的版本号)
			%s:服务器端所返回的状态值
			\"%{Referer}i\":显示该用户的请求是否为跳转过来的,如果不是跳转来的,显示 - 
			\"%{User-Agent}i\":客户端的浏览器类型

		日志位置:CustomLog  保存位置  格式名称

配置12:设置字符集

AddDefaultCharset UTF-8

配置13:配置路径别名

Alias /error/ "/var/www/error/"

注意:
	结尾必须相同

配置14:配置CGI

CGI:Common Gateway Interface,是一种协议
作用:运行让用户请求一个脚本,然后将脚本的执行结果返回给客户端,这里就用到了CGI协议,CGI协议就是让apache启动一个解释器来执行脚本程序,然后将执行的结果发送给客户端

脚本要想使用CGI执行,并给客户端返回结果,脚本的输出格式是固定
第一行:Content-Type: text/html
第二行:空白行
第三行:这行开始是脚本的正文

a.sh
	#!/bin/bash
	echo "Content-Type: text/html"
	echo ""
	echo "my name is :`hostname`"
	echo "date is: `date`"


CGI找脚本的位置
	ScriptsAlias /cgi-bin/ "/var/www/cgi-bin/"

配置15:配置虚拟主机功能
案例:http基于域名的虚拟主机的实现

发布多个网站
	在网站跟目录下,创建多个子目录,每个子目录是一个网站
	每个网站--虚拟主机



虚拟主机:用一个apache发布多个网站
	1:不同的网站用不同的端口
	2:不同的网站用不同的IP
	3:不同的网站用不同的域名

配置16:状态页面

通过一个页面来显示服务器的状态
功能依赖一个DSO模块:status_module

<Location /server-status>       <<< 指定如何访问这个状态页面
    SetHandler server-status    <<< 指定做状态统计的处理器
    Order deny,allow
    Deny from all                <<< 拒绝所有用户
    Allow from x.x.x.x          <<< 指定可以访问这个页面的客户端列表
</Location>

说明
	一个点就表示一个可以启动,但是尚未启动的进程
	一个_ 表示一个等待使用的进程
	如果一个进程被使用,位置上就会出现一个字母

配置17:页面压缩

功能依赖一个DSO模块:deflate_module
作用:减少传输的数据量,但是带来额外的系统开销

SetOutPutFilter DEFLATE                      <<< 启动页面压缩功能
<IfModule mod_deflate.c>
   AddOutPutFilterByType DEFLATE text/html   <<< 指定对什么类型的文件做压缩
   AddOutPutFilterByType DEFLATE text/image
   DeflateCompressionLevel 9                 <<< 指定压缩比
</IfModule>

配置18:基于用户的访问控制

范围
	整个网站
	某一个或者多个目录
虚拟用户

用户控制相关模块
1:auth:指定认证方式
	basic:基本认证,也就是用户名+密码(明文)
	digest:基于摘要方式做认证(hash)
2. authn:指定认证的提供者(用于做认证的信息的保存位置)
3. auzhz:指定授权机制

------做运维之前很矫情的小年轻-----

猜你喜欢

转载自blog.csdn.net/cx55887/article/details/85793171