Apache入门篇(二)之apache的配置与实战

1Apache 主要目录结构

[root@localhost apache-2.4.33]# pwd
/usr/local/apache-2.4.33
[root@localhost apache-2.4.33]# ll
total 44
drwxr-xr-x  2 root root  302 Jul  4 12:12 bin
drwxr-xr-x  2 root root  293 Jul  4 12:12 build
drwxr-xr-x  2 root root   78 Jul  4 12:12 cgi-bin
drwxr-xr-x  4 root root   84 Jul  4 12:14 conf
drwxr-xr-x  3 root root 4096 Jul  4 12:12 error
drwxr-xr-x  2 root root   24 Jul  4 12:12 htdocs
drwxr-xr-x  3 root root 8192 Jul  4 12:12 icons
drwxr-xr-x  2 root root 8192 Jul  4 12:12 include
drwxr-xr-x  3 root root  281 Jul  4 12:12 lib
drwxr-xr-x  2 root root   58 Jul  4 12:34 logs
drwxr-xr-x  4 root root   30 Jul  4 12:12 man
drwxr-xr-x 14 root root 8192 Jul  4 12:12 manual
drwxr-xr-x  2 root root 4096 Jul  4 12:12 modules

1bin 目录 

(1)ab: Apache Http 服务器性能测试工具,简单、易用
(2)apachectl: Apache 的启动命令,脚本。 

(3)apxs:是一个为 Apache Http 服务器编译和安装扩展模块的工具,在进行 DSO 方式编译模块时会用到。

(4)htcacheclean:清理磁盘缓冲区的命令,需要在编译时指定相关参数才能用,一般很少用。

(5)htpasswd:建立和更新基本认证文件。如配置 nagios 等监控服务时会用到。

(6)httpd:为 Apache 的控制命令程序, apachectl 执行时会调用 httpd 。

(7)rotatelogs: Apache 自带的日志轮询命令。一般可用 cronolog 替代。

2conf 目录

(1)extra:扩展的 Apache 配置文件目录,做为 httpd.conf 的子配置文件所在的目录。
(2)httpd.conf: Apache 的主配置文件。
(3)magic
(4)mime.types :支持的媒体类型文件
(5)original

3htdocs 目录:是 Apache 默认站点目录 。

4logs 目录:是 Apache 默认日志目录,包括错误日志及访问日志 。

(1)access_log:默认访问日志文件
(2)error_log:默认错误日志文件
(3)http.pid: httpd 的 pid 文件, http 进程启动后,会把所有进程的 ID 号写到此文件

5modules 目录:是 Apache 的模块目录。如 phpmemcache 等模块编译后都放在该目录下

2、 主配置文件 httpd.conf 说明

 1 [root@localhost apache-2.4.33]# grep -Ev "^#|^[ ]+#|^$" conf/httpd.conf
 2 ServerRoot "/usr/local/apache-2.4.33"   #apache服务的根目录
 3 Listen 80        #监听端口,不写ip,表示默认监听本机所有配置的ip地址
 4 LoadModule authn_file_module modules/mod_authn_file.so   #导入模块
 5 LoadModule authn_core_module modules/mod_authn_core.so
 6 LoadModule authz_host_module modules/mod_authz_host.so
 7 LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
 8 LoadModule authz_user_module modules/mod_authz_user.so
 9 LoadModule authz_core_module modules/mod_authz_core.so
10 LoadModule access_compat_module modules/mod_access_compat.so
11 LoadModule auth_basic_module modules/mod_auth_basic.so
12 LoadModule reqtimeout_module modules/mod_reqtimeout.so
13 LoadModule filter_module modules/mod_filter.so
14 LoadModule mime_module modules/mod_mime.so
15 LoadModule log_config_module modules/mod_log_config.so
16 LoadModule env_module modules/mod_env.so
17 LoadModule headers_module modules/mod_headers.so
18 LoadModule setenvif_module modules/mod_setenvif.so
19 LoadModule version_module modules/mod_version.so
20 LoadModule unixd_module modules/mod_unixd.so
21 LoadModule status_module modules/mod_status.so
22 LoadModule autoindex_module modules/mod_autoindex.so
23 LoadModule dir_module modules/mod_dir.so
24 LoadModule alias_module modules/mod_alias.so
25 <IfModule unixd_module>  #模块的开头
26 User daemon  #默认编译和安装的用户为deamon
27 Group daemon
28 </IfModule>
29 ServerAdmin [email protected]  #管理员的E-mail
30 ServerName localhost:80   #域名配置
31 <Directory />   #对网站根目录进行权限配置
32     AllowOverride none   #禁止相关功能,如重载等功能
33     Require all denied
34 </Directory>
35 DocumentRoot "/usr/local/apache-2.4.33/htdocs"   #默认站点目录
36 <Directory "/usr/local/apache-2.4.33/htdocs">  #对指定站点目录进行权限配置
37     Options Indexes FollowSymLinks   #Indexes表示允许展示目录结构,有安全风险,要禁止,去掉或在前面加上"-":-Indexes,下载目录可以展示,但一般的服务是不允许的
38     AllowOverride None
39     Require all granted
40 </Directory>
41 <IfModule dir_module>
42     DirectoryIndex index.html   #指定主页
43 </IfModule>
44 <Files ".ht*">   #对以".ht"开头的文件进行指定处理
45     Require all denied
46 </Files>
47 ErrorLog "logs/error_log"  #错误日志配置
48 LogLevel warn  #日志级别配置
49 <IfModule log_config_module>  #访问日志的内容和格式配置
50     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
51     LogFormat "%h %l %u %t \"%r\" %>s %b" common
52     <IfModule logio_module>
53       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
54     </IfModule>
55     CustomLog "logs/access_log" common
56 </IfModule>
57 <IfModule alias_module>
58     ScriptAlias /cgi-bin/ "/usr/local/apache-2.4.33/cgi-bin/"
59 </IfModule>
60 <IfModule cgid_module>
61 </IfModule>
62 <Directory "/usr/local/apache-2.4.33/cgi-bin">
63     AllowOverride None
64     Options None
65     Require all granted
66 </Directory>
67 <IfModule headers_module>
68     RequestHeader unset Proxy early
69 </IfModule>
70 <IfModule mime_module>
71     TypesConfig conf/mime.types
72     AddType application/x-compress .Z
73     AddType application/x-gzip .gz .tgz
74 </IfModule>
75 <IfModule proxy_html_module>
76 Include conf/extra/proxy-html.conf   
77 </IfModule>
78 <IfModule ssl_module>
79 SSLRandomSeed startup builtin
80 SSLRandomSeed connect builtin
81 </IfModule>

3、扩展配置文件说明

1)重点配置文件: httpd-vhosts.conf httpd-mpm.conf
2)需了解的配置文件: httpd-default.conf
3httpd-vhosts.conf 为虚拟主机配置文件,以下配置说明

[root@localhost extra]# grep -Ev "^#|^$" httpd-vhosts.conf 
<VirtualHost *:80>   #表示虚拟主机配置,如果需要配置多个虚拟主机,就有多个该配置
    ServerAdmin webmaster@dummy-host.example.com  #管理员邮箱
    DocumentRoot "/usr/local/apache-2.4.33/docs/dummy-host.example.com"  #网站根目录
    ServerName dummy-host.example.com  #网站域名
    ServerAlias www.dummy-host.example.com  #域名的别名
    ErrorLog "logs/dummy-host.example.com-error_log"   #错误日志
    CustomLog "logs/dummy-host.example.com-access_log" common  #访问日志common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/local/apache-2.4.33/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>

4httpd-mpm.conf 配置说明

a、 PidFile "logs/httpd.pid:指定 pid 文件
<IfModule !mpm_netware_module>
PidFile "logs/httpd.pid"
</IfModule>
b、 LockFile "logs/accept.lock":指定 lock 文件 <IfModule !mpm_netware_module> LockFile "logs/accept.lock" </IfModule>
c、 prefork 模式配置: <IfModule mpm_prefork_module>(默认模式) 由于安装时指定了 work 模式,所以该配置可以不配 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule>
d、 work 模式配置: <IfModule mpm_worker_module> <IfModule mpm_worker_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>

5httpd-default.conf 配置说明

a、超时设置: Timeout 300
b、保持连接状态设置: KeepAlive On
c、保持最大连接请求设置: MaxKeepAliveRequests 100
d、同一连接上等待下一个请求的时间设置: KeepAliveTimeout 5
e、设置伪静态的语法: AccessFileName .htaccess
f、隐藏 Apache 版信息:
ServerTokens Full
ServerSignature On 

4、http 协议和 www 服务实战进阶

(1)虚拟主机分类
虚拟主机是在同一 http 服务下部署多个站点,每个站点都使用不同的域名和站点目录,或不同 IP 和端口。也就是
一个 http 服务配置多个站点。
①基于域名的虚拟主机
②基于端口的虚拟主机
③基于 IP 的虚拟主机


(2)配置基于域名的虚拟主机

需求

域名 目录
www.abc.org /var/html/www
blog.abc.org /var/html/blog
bbs.abc.org /var/html/bbs



 

猜你喜欢

转载自www.cnblogs.com/linuxk/p/9284868.html