apache 2.2 配置参数详解

安装httpd

yum -y install  httpd

服务脚本:/etc/rc.d/init.d/httpd

脚本配置文件:/etc/sysconfig/httpd

运行目录:/etc/httpd

配置文件:

主配置文件:/etc/httpd/conf/httpd.conf

扩展配置:/etc/httpd/conf.d/*.conf

Socket:80/tcp,443/tcp

文档根目录:/var/www/html

CGI:/var/www/cgi-bin/

日志滚动:

日志切割

时间、空间

Docroot:文档根目录

配置文件:

/etc/httpd/conf/httpd.conf

配置参数 值

配置指令不区分字符大小写

值有可能区分大小写

有些指令可以重复出现多次

配置文件格式

全局配置

主机配置:用于仅提供一个站点时

虚拟主机配置:用于提供多个站点时

配置文件语法测试

serviice httpd configtest

httpd -t

绝大多数配置修改后,可以用过service httpd reload 来生效,如果修改了监听的地址或端口,必须重启服务才能生效

1.监听套接字

Listen [IP:]port

此指令可以出现多次,用于指定监听多个不同的套接字

Listen 80

Listen 172.16.100.7:8080

2.配置使用Keepalive

KeepAlive {On|Off}

KeepAliveTimeout 2 超时时间

MaxKeepAliveRequests 50 最大连接

3.MPM

多道处理模块

httpd -l 查看编译进内核的模块

想使用不同的机制,修改配置文件即可 /etc/syconfig/httpd文件

 <IfModule preforck.c>判断模块是否存在

StartServers       8 默认启动的工作进程数

MinSpareServers    5 最少空闲进程数

MaxSpareServers   20 最大空闲进程数

ServerLimit      256 最大活动进程数

MaxClients       256 最大并发连接数,最多允许发起的连接请求的个数

MaxRequestsPerChild  4000 每个子进程在生命周期内最大允许服务的最多请求个数

</IfModule>

<IfModule worker.c>

StartServers         4 启动的子进程的个数

MaxClients         300 最大并发连接数,最多允许发起的连接请求的个数

MinSpareThreads     25 最少空闲线程数

MaxSpareThreads     75 最大空闲线程数

ThreadsPerChild     25 每个子进程生成的线程数

MaxRequestsPerChild  0 每个子进程在声明周期内最大允许服务的最多请求个数

</IfModule>

4、DSO模块的加载方式

LoadModule module_name /path/to/module

如果使用相对路径,则对于ServerRoot所定义的位置而言

LoadMoudule php5_module /usr/lib64/httpd/modules/php.so

让服务重载配置文件方能生效

httpd -m 列出与加载到所有DSO模块与非DOS模块

取消 注释掉即可

5、配置站点根目录

DocumentRoot /path/to/somewhere

6、页面访问属性

<Direcotry "/path/to/somewhere">

Options 选项

Indexes:缺少指定的默认页面时,允许将目录中的所有文件已列表形式返回给用户:危险:慎用

FollowsymLinks:允许跟随符号链接所指向的原始文件

None:所有都不启用

All:所有的都启用

ExecCGI:允许使用mod_cgi模块执行CGI脚本

Includes:允许使用mod_include模块实现服务器端包含(SSI)

IncludesNOEXEC:允许包含但不允许执行脚本

MultiViews:允许使用mod_negotiation实现内容协商

SymLinksIfOwnerMatch:在链接文件属主属组与原始文件的属主属组相同时,允许跟随符号连接所指向的原始文件

AllowOverride

</Direcotry>

可以使用正则表达式,使用~

7.基于主机的访问控制

<Direcotry "/path/to/somewhere">

Options

AllowOverride

None 不禁用下面

order 次序,写在后面的为默认

allow,deny: 没有允许的都拒绝

deny,allow:没有拒绝的都允许

Allow from

Deny from

</Direcotry>

如果都匹配或都不匹配时以默认为准

否则则以匹配到的为准

Allow from

Deny from

IP,Network Address

172.16

172.16.0.0

172.16.0.0/16

172.16.0.0/255.255.0.0

基于用户做访问控制

8.定义默认主页面

DirectoryIndex 依次查找

9.用户目录

如果期望让每个用户都可以创建个人站点:http://Server_IP/~Username/

userdir disablied:禁止

userdir public_html:

public_html是用户家目录下的目录名称,所有位于此目录中的文件均可通过前述的访问路径进行访问

用户的家目录得赋予进行httpd进程的用户拥有执行权限

setfacl -m u:apache:x ~Username

10、配置日志功能

/var/log/http/

access.log:访问日志,其需要记录的内容需要自定义

error.log

访问日志:

CustomLog "/path/to/log_file" LogFormat

LogFormat定义日志格式

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

%h:客户端地址

%l:远程的登录名,通常为-

%u:认证时的远程用户名,通常为-

%t:接收到的请求时的时间,为标准英文格式时间+时区

\" :转义,显示""

%r:请求报文的起始行

%>s:响应状态码,

%b:以字节响应报文的长度,不包含http报文

%{Header_Name}i:记录指定请求报文首部的内容(value)

%u:请求的URL

详情请参考:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

错误日志:

ErrorLog

11、路径别名

Alias /alias/ "/path/to/somewhere"

意味着访问http://Server_IP/alias时,其页面文件来自于/path/to/somewhere中

12、指定默认的字符集

AddDefaultCharset

13.脚本路径别名(CGI接口)

URL-->FileSystem Directory

CGI:Common Gateway Interface(通用网关接口)使WEB可以跟一个应用程序进行通信,从通信环境中获得结果。

CGI是不安全的

在第一行写入

echo “Content-Type:text/html:

mod_alias,mod_cgi

ScriptAlias /URL/ "/path/to/somewhere" somewhere下的文件可以被执行

也可以在目录中实现

格式一般为

cat << EOF

Content-Type:text/html

<pre>

The time is : `date`.

</pre>

EOF

14.基于用户的访问控制

虚拟用户:不是系统用户,只是为了获取某种资源类型的一种虚拟的用户

文件/etc/httpd/conf/.htpasswd

SQL数据库

dbm:

ldap:轻量级目录访问协议

认证类型(auth):

basic:基本认证,账号和密码明文发送

digest:摘要认证,hash编码之后发送

认证提供者(authentication provider):账号和密码的存放位置

authn

授权机制(authorization):根据什么进行授权

案例:基于文件,做基本认证根据用户和组进行授权

1、编辑配置文件,为需要认证的目录配置认证机制

<Directory "/www/htdocs/fin">A

options None

AllowOverride AuthConfig 使用认证配置

AuthType Basic 使用基本认证

AuthName "Private Area" 质询时标题

AuthUserFile /etc/http/conf/.htpasswd  密码的存放位置

Require vaild-user 可访问的用户

</Directory>

2、使用htpsswdm命令使用生成认证库

htpasswd

-c 创建密码,创建第一个用户时使用

htpasswd -c -m /etc/http/conf/.htpasswd tom

-m MD5格式存放

-b 批量模式

-D 删除用户

3、基于组认证

<Directory "/www/htdocs/fin">

options None

AllowOverride AuthConfig 使用认证配置

AuthType Basic 使用基本认证

AuthName "Private Area" 质询时标题

AuthgroupFile /etc/http/conf/.htpasswd  密码的存放位置

Require group GroupName  可访问的用户

</Directory>

先创建用户,在创建组

组文件:

组名:用户1 用户2 用户3

15.虚拟主机

一个物理服务器提供多个站点;使用虚拟主机得先取消中心主机

基于不同的IP实现不同的虚拟主机

变化IP

基于不同的port实现不同的虚拟主机

变化port

基于不同主机名实现不同的虚拟主机

变化ServerName的值

通过请求报文中的HOST来实现不同的虚拟主机访问

<VirtualHost IP:port>

SeverName

DocumentRoot ""

<Directory "">

</Directory>

ServerAlias

ServerAdmin

</VirtualHost>

将全局中的DocumentRoot""注释掉

虚拟主机的单独配置

用户认证

访问日志

错误日志

别名

脚本别名

基于IP认证机制,基于用户认证

http协议认证、表单认证

16.https协议

x509.3证书格式

证书格式的版本号

证书序列号

证书签名算法

证书颁发者

有效期

持有者的名称

持有者的公钥

CA的ID

持有者的ID

其他扩展信息

基本约束

证书策略

密钥的使用限制

CA签名

ssl握手要完成的工作

交换协议版本号

选择一个双方都支持的加密方式

对两端实现身份验证

密钥交换

http:文本协议 80/tcp

https:二进制格式的协议 443/tcp

SSL会话基于IP地址进行:不支持在基于主机名的虚拟主机上实现

客户端验证服务器端证书时:

日期检查:证书是否在有效期内

证书颁发者的可信度

证书的签名检测:

持有者的身份检测

httpd:基于mod_ssl模块实现对ssl的支持

可以在/etc/pki/tls/certs

openssl s_client

-connet:验证的地址:端口

-CAfile:CA证书的路径

1)、准备好服务器的私钥和证书

2)、安装mod_ssl模块

yum -y install mod_ssl

3)、配置/etc/httpd/conf.d/ssl.conf

配置实用ssl的虚拟主机

ServerName

DocunmentRoot

配置证书和私钥

SSLCertificatFile 证书文件

SSLCertificatKeyFile 密钥文件

4)、重启httpd服务

5)、测试

openssl s_client -connet:验证的地址:端口  -CAfile:CA证书的路径

URL Rewrite:URL重写

17、服务器status页面

内生的status信息,且此信息可以通过web予以显示

基于URL访问属性

<Location [~] "">

</Location >

基于单个文件的访问属性

<File [~] "">

</File>

也可以使用<LocationMatch "">

</LocationMatch>来实现正则表达式的配置

如果要配置其属性的URL能映射到某具体文件系统路径,建议使用<Directory>

处理器:当文件被调用时,Apache内部表现形式:一般每种文件类型都有其隐式处理器;否则需要自己定义

显式的定义使用的处理器:SetHandler

<Location /URL>

setHeandler server-status

</Location>

定义访问控制机制

基于IP控制

基于用户控制

示例:

<Location /server-status>

SetHandler sever-status

AuthType Basic

AuthName "Sever Status"

AuthUserFile "/etc/http/conf/.htpasswd"

Require valid-user

Order deny,allow

Allow from all

</Location>

18、ab工具的初步使用

-c 模拟的并发数

-n 模拟的总请求数

一般并发数应该小于等于请求数

http_load webbench seige(只做参考)

tcp_copy

19、使用mod_deflate模块压缩页面优化传输速度,可以写为一行,也可以写多行,默认为gzip

SetOutputFilter DEFLATE

# mod_deflate configuration

<IfModule mod_deflate.c>

# Restrict compression to these MIME types

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE text/javascript

AddOutputFilterByType DEFLATE text/css

# Level of compression (Highest 9 - Lowest 1)默认为6

DeflateCompressionLevel 9

# Netscape 4.x has some problems.

BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems

BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine

BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

</IfModule>

扩展功能

apachectl

Apache HTTP服务控制工具

ab

Apache HTTP服务器性能测试工具

apxs

Apache 扩展工具

configure

配置源代码

dbmmanage

为基本认证创建和更新DBM格式的用户认证文件

htcacheclean

清理磁盘缓存

htdigest

为摘要认证创建和更新用户认证文件。

htdbm

操作 DBM 密码数据库。

htpasswd

为基本认证创建和更新用户认证文件。

httxt2dbm

为 RewriteMap 创建 dbm 文件。

logresolve

将 Apache 日志文件中的 IP 地址解析到主机名称。

rotatelogs

不关闭 Apache 而切换日志文件。

suexec

执行外部程序前切换用户。

20.资源限定

软限制:可以超出的限制,但仅能超出一定时长

硬限制:绝对不能超出的限制

ulimit:只能修改软限制

-n [N]:显示或限制能打开的最大的文件句柄数,

-u [N]:所能够打开的最大进程数

如果修改硬限制

/etc/security/limits.conf,扩展配置etc/security/limits.d/*.conf

对谁进行限定    类型  要限定的选项 值

时间: 2024-11-10 00:12:50

apache 2.2 配置参数详解的相关文章

nginx配置参数详解

配置参数详解 user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log  logs/error.log;  error_log  logs/error.log  notice;  error_log  logs/error.log  info;  错误日志:存放路径. pid logs/nginx.pid; pid(进程标识符):存放路径

eAccelerator 配置参数详解

eAccelerator 配置参数详解 eaccelerator.shm_size="32" eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的. eaccelerator.cache_dir="/home/php/tmp" 这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先

jquery的uploadify插件多文件上传配置参数详解

最近做了个多文件上传,需要限制上传文件类型的例子.以前没做过找了一些资料,下次有用.同时也给大家做参考. uploader: uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. script: 后台处理程序的相对路径 .默认值:uploadify.php checkScript:用来判断上传选择的文 件在服务器是否存在的后台处理程序的相对路径 fileDataName:设置一个名字,在服务器处理

zookeeper的配置参数详解(zoo.cfg)

配置参数详解(主要是%ZOOKEEPER_HOME%/conf/zoo.cfg文件) 参数名 说明 clientPort 客户端连接server的端口,即对外服务端口,一般设置为2181吧. dataDir 存储快照文件snapshot的目录.默认情况下,事务日志也会存储在这里.建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能. tickTime ZK中的一个时间单元.ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的.例如,session的最小超时时间是2*tic

Mysql 配置参数详解以及优化配置

mysql有以下几种日志: 错误日志:   log-err 查询日志:   log 慢查询日志:  log-slow-queries 更新日志:   log-update 二进制日志: log-bin 要把日志生成在 /var/log 目录下(是系统日志存放的地方,只有 root 账号有写权限),需要 MySQL进程对这个目录有读写权限,一般是不这么做的,也考虑到安全问题,包括 MySQL 本身的数据安全,因为对 MySQL 的所有操作,都会记录到常规查询日志.MySQL的日志就不要用 /var

reids配置参数详解

转自:http://www.jb51.net/article/60627.htm reids配置参数详解 #daemonize no  默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize yes #  当 redis 在后台运行的时候, Redis 默认会把 pid 文件放在 /var/run/redis.pid ,你可以配置到其他地址. #  当运行多个 redis 服务时,需要指定不同的 pid 文件和端口 pidfile /var/

MHA实现mariadb的高可用的详细步骤及配置参数详解

MHA实现mariadb的高可用的详细步骤及配置参数详解 A. 实验环境说明 a) 4台centos7主机 b) 角色说明: a. MHA:192.168.36.35 b. Master_mariadb:192.168.36.121 c. Slave_mariadb:192.168.36.120 d. Slave_mariadb:192.168.36.27 B. 安装程序包 a) mariadb上安装: mariadb-server 版本:5.5.60 mha4mysql-node -0.56-

samba 配置参数详解

samba 配置参数详解: 一.全局配置参数  workgroup = WORKGROUP说明:设定 Samba Server 所要加入的工作组或者域. server string = Samba Server Version %v说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填.宏%v表示显示Samba的版本号. netbios name = smbserver说明:设置Samba Server的NetBIOS名称.如果不填,则默认会使用该服务器的DNS名称的第一部分

Nginx主配置参数详解,Nginx配置网站

1.Niginx主配置文件参数详解 a.Linux中安装nginx.博文地址为:http://www.cnblogs.com/cindy-cindy/p/6847499.html b.当Nginx安装完毕后,会有相应的安装目录,安装目录里的nginx.confg为nginx的主配置文件,nginx主配置文件分为4部分,main(全局配置).server(主机配置).upstream(负载均衡服务器设置)以及location(URL匹配特定位置的设置),这四者的关系是:server继承main,l