Administering Apache 读书笔记

由 nicosoft 在 05-22-2003 12:11 发表:

Administering Apache 读书笔记

Administering Apache 读书笔记

nico chen

Homepage: http://www.wo-com.com

E-mail [email protected]

apache系统管理指南 清华大学出版社

Administering Apache 美]Mark Arnold Jeff Aimeida

apache version 2.0.44

这本书是一本不错的apache的专著,内容详略得当,从字里行间,可以看出作者

是非常非常聪明,他们懂得如何能让自己的工作更轻松些,例如将烦琐和重复的事情

化作脚本,以便重复使用,这个经验我在拜读《unix unleash》我就有所闻了。有经

验的网络管理员,对各种应用层次的策略都会照顾到,而Mark和Jeff也做到了这点。

总之,假如你对apache有点了解,而又想深入探索的话,这本书值得推荐。下面是我

的读书笔记的整理,我是按照自己的需要记录的,并不是原书的所有内容,以供大家

参考

modules -> Functions

安装与配置apache

###########################################################################################

获取apache

从 http://www.apache.org获取apache 2.0.44

安装apache

-------------------------------------------------------------------

使用APACI配置apache的安装:

./configura

常用选项:

--help #可以查看所有的可用选项

--prefix=

  1<path> #指定安装目录   
  2  
  3\--enable-module = <xxx|all|most> #xxx为名字为mod_xxx.c的模块   
  4  
  5\--disable-module = xxx #xxx为名字为mod_xxx.c的模块   
  6  
  7\--enable-shared = <xxx|max> #起用DSO(Dynamic Share Object),需要mod_so.c的支持   
  8  
  9  
 10  
 11开始安装   
 12  
 13\-------------------------------------------------------------------   
 14  
 15make   
 16  
 17make install   
 18  
 19oks   
 20  
 21  
 22  
 23与php 4.3.1 的集成   
 24  
 25\-------------------------------------------------------------------   
 26  
 27\---/configure --with-apxs2=/usr/local/apache2/bin/apxs &lt;假如想安装mysql的话 --with-mysql=/usr/local/mysql &gt;   
 28  
 29make   
 30  
 31make install   
 32  
 33  
 34  
 35配置apache   
 36  
 37\-------------------------------------------------------------------   
 38  
 39apache的主要配置文件:   
 40  
 41httpd.conf   
 42  
 43srm.conf   
 44  
 45access.conf   
 46  
 47mime.types   
 48  
 49magic   
 50  
 51  
 52  
 53编辑httpd.conf   
 54  
 55基本指令:   
 56  
 57ServerType #为standalone或者是inetd   
 58  
 59ServerRoot #apache的安装目录,默认为/usr/local/apache   
 60  
 61LockFile #服务器串行模式的加锁文件位置,一般不需要改动   
 62  
 63PidFile #记录服务器运行时的pid的文件路径   
 64  
 65ResourceConfig #资源文件所在,让srm.conf为空,则httpd.conf的相关值生效   
 66  
 67AccessConfig #访问权限文件的所在路径   
 68  
 69LoadModule #加载模块   
 70  
 71AddModule #加载模块的顺序   
 72  
 73Port #监听端口,默认为80   
 74  
 75ServerAdmin #管理员信箱   
 76  
 77ServerName #服务器名称   
 78  
 79DocumentRoot #站点文件所在路径   
 80  
 81  
 82  
 83测试配置是否正确   
 84  
 85\-------------------------------------------------------------------   
 86  
 87apachectl configtest   
 88  
 89  
 90  
 91启动apache   
 92  
 93\-------------------------------------------------------------------   
 94  
 95apachectl start 或者 httpd -k start   
 96  
 97  
 98  
 99重起apache   
100  
101\-------------------------------------------------------------------   
102  
103apachectl graceful 或者 httpd -k graceful   
104  
105  
106  
107停止apache   
108  
109\-------------------------------------------------------------------   
110  
111apachectl stop 或者 httpd -k stop   
112  
113  
114  
115创建web site   
116  
117###########################################################################################   
118  
119  
120  
121apache默认的用户和组为为apache   
122  
123将站点的目录和文件的权限赋予apache   
124  
125find /usr/local/apache/ -exec chown apache {}\   
126  
127find /usr/local/apache/ chgrp apache {}\   
128  
129find /usr/local/apache/ -type -d chmod 755 {}\   
130  
131find /usr/local/apache/ -type -f chmod 640 {} \   
132  
133给适当的文件适当的权限是一个管理员的责任所在。   
134  
135  
136  
137内容处理   
138  
139###########################################################################################   
140  
141  
142  
143目录内容处理   
144  
145\-------------------------------------------------------------------   
146  
147DirectoryIndex index.htm index.html #默认文挡   
148  
149当默认文档不存在,且<directory>Options中Indexes生效时:   
150  
151HeaderName #页面题头文件   
152  
153ReadmeName #页面页尾文件   
154  
155IndexIgnore #隐藏文件规则   
156  
157IndexOptions #控制目录列表的外观   
158  
159  
160  
161目录其他   
162  
163\-------------------------------------------------------------------   
164  
165Alias /path/ "/<path>/" #别名定义   
166  
167  
168  
169配置MIME(multipropuse internet mail extend protocol)   
170  
171\-------------------------------------------------------------------   
172  
173因为不常会修改,只做浏览 ![](http://linuxsir.zahui.net/html/11/http_3A/linuxsir.zahui.net/html/11/images/smilies/smile.gif)   
174  
175AddHandler   
176  
177SetHandler send-as-is # 按原状发送   
178  
179  
180  
181配置CGI(comment gateway interface)   
182  
183\-------------------------------------------------------------------   
184  
185  
186  
187<directory>Options +ExecCGI #以允许使用CGI   
188  
189  
190  
191SetHandler cgi-script #设定CGI脚本类型   
192  
193  
194  
195  
196  
197配置SSI   
198  
199\-------------------------------------------------------------------   
200  
201因为apache方面的性能专家Dean Gaudet不鼓励使用SSI,所以我只是浏览了一下,没有详细地记录下来   
202  
203  
204  
205使用日志   
206  
207###########################################################################################   
208  
209  
210  
211\-------------------------------------------------------------------   
212  
213LogLevel <emerg|alert|crit|warn|notice|info|debug> 简略--&gt;详细 严重--&gt;轻微   
214  
215ErrorLog <path|pipe|syslog>   
216  
217日志发送到文件:ErrorLog /var/www/log   
218  
219日志发送到syslog:ErrorLog syslog:local &lt;1-7&gt; 默认为local 7   
220  
221日志发送给管道:ErrorLog "|/usr/local/apache/bin/errordb insert"   
222  
223  
224  
225日志传输   
226  
227\-------------------------------------------------------------------   
228  
229文档传送日志告诉你服务器在与谁交互,交互什么,是什么时候交互,同哪里交互   
230  
231TransferLog用法类似ErrorLog   
232  
233  
234  
235自定义日志格式   
236  
237\-------------------------------------------------------------------   
238  
239LogFormat   
240  
241%a client ip   
242  
243%A server ip   
244  
245%b 响应http标头以外的字节数   
246  
247%{eviron}e 以eviron命名的变量的值   
248  
249%f 被请求文件的路径   
250  
251%h client hostname   
252  
253%{reqheader}i 名字为reheader的标头的值   
254  
255%l client的系统环境,IdentifyCheck为On且内容协商成功   
256  
257%{modnote}n 名字为 modnote的短信的值   
258  
259%p server port   
260  
261%P server PID   
262  
263%r 请求的第一行,包括URLmodth   
264  
265%s 原始响应信息   
266  
267%&gt;s 返回浏览器的响应状态   
268  
269%t 请求的发生时间[18/Nov?1999:13:02:58-0600]   
270  
271%{timefmt}t 定义时间的显示格式,因为基本不需要修改,所以省略了...   
272  
273%T 处理请求的秒数   
274  
275%u 请求用户的登陆名   
276  
277%U 被请求的URL,不包括参数   
278  
279%v server name   
280  
281%V 根据UseCanonicalName得到服务器名称   
282  
283  
284  
285通用日志的默认格式等价于   
286  
287LogFormat "%h %l %u %t \" %r \" %&gt;s %b"   
288  
289  
290  
291LogFormat "%401u" #记录未认证的用户名   
292  
293  
294  
295apache 预先定义了四种日志的格式:<combined|common|referer|agent>   
296  
297  
298  
299CustomLog   
300  
301\-------------------------------------------------------------------   
302  
303  
304  
305CoustomLog "/var/logs/httpd/access_logs" env = myCheck #否定为 env =! myCheck   
306  
307  
308  
309SetEnvIf <remote_addr|remote_host|remote_user|request_method|request_protocol|request_url> "condition" VarName   
310  
311  
312  
313只要检查属性中符合Condition,就定义名字为VarName的变量   
314  
315  
316  
317condition为unix中的正则表达式(Regular Expression),可以查看man regex获取详细资料   
318  
319  
320  
321LogFormat CustomLog 由mod_log_config.c提供&lt;默认&gt;   
322  
323  
324  
325SentEnvIf mod_setenvif.c提供&lt;默认&gt;   
326  
327  
328  
329CookieTracking CookieName CookieExpires   
330  
331\-------------------------------------------------------------------   
332  
333由mod_usertrack.c提供&lt;非默认&gt;   
334  
335<ifmodule mod_usertrack="">   
336  
337CookieTracking <on|off>   
338  
339CookieName myCookie   
340  
341</on|off></ifmodule>   
342  
343CookieExpires 600 #也可以用 CookieExpires "3 weeks 2 days 4 hours 22 seconds"   
344  
345注意CookieExpires不可以在<directory>中,该选项为全局   
346  
347  
348  
349AllowOverride   
350  
351\-------------------------------------------------------------------   
352  
353All 允许.htaccess覆盖httpd.conf中的所有目录设置   
354  
355Authconfig 允许覆盖认证指令AuthName AuthType AuthUserFile AuthGroupFile 等   
356  
357FileInfo 允许覆盖目录存取文件设置AddEncodeing AddLanguage AddType CookieTracking CookieName等   
358  
359Indexes 允许覆盖目录索引设置   
360  
361Limit 允许覆盖allow deny order require   
362  
363None 不允许覆盖httpd.conf中的所有目录设置   
364  
365Options 允许覆盖Options的设置   
366  
367  
368  
369例子:用户单击流事件,引用记录,代理记录   
370  
371  
372  
373虚拟主机   
374  
375###########################################################################################   
376  
377  
378  
379基于IP的虚拟主机   
380  
381\-------------------------------------------------------------------   
382  
383<virtualhost 202.119.219.28="">   
384  
385ServerName www.njfu.edu.cn   
386  
387ServerAdmin nico@njfu.edu.cn   
388  
389DocumentRoot /var/www/   
390  
391ServerAlias njfu.edu.cn   
392  
393</virtualhost>   
394  
395  
396  
397基于域名的虚拟主机   
398  
399\-------------------------------------------------------------------   
400  
401NameVirtualHost 202.119.219.28   
402  
403<virtualhost 202.119.219.28="">   
404  
405ServerName www.njfu.edu.cn   
406  
407ServerAdmin nico@njfu.edu.cn   
408  
409DocumentRoot /var/www/   
410  
411ServerAlias njfu.edu.cn main.njfu.edu.cn   
412  
413</virtualhost>   
414  
415  
416  
417VirtualDocumentRoot   
418  
419\-------------------------------------------------------------------   
420  
421mod_vhost_alias.c模块提供   
422  
423大大简化了配置虚拟主机   
424  
425  
426  
427一个好的管理员会为没个虚拟站点分别设置不同的的按全性设置   
428  
429  
430  
431  
432  
433安全性   
434  
435###########################################################################################   
436  
437  
438  
439IP构成   
440  
441\-------------------------------------------------------------------   
442  
443首先拒绝一切,接着允许可以放行的服务   
444  
445ICMP (ping / pong)   
446  
447DNS DHCP   
448  
449WWW SMTP POP PROXY.i.e   
450  
451  
452  
453网络配置文件   
454  
455\-------------------------------------------------------------------   
456  
457  
458  
459/etc/sysconfig/network-script/ifcfg-eth0   
460  
461\------------------------------   
462  
463DEVICE=eth0   
464  
465onBOOT=yes   
466  
467BOOTPROTO=static   
468  
469IPADDR=131.107.200.1   
470  
471NETMASK=255.255.0.0   
472  
473GATEWAY=131.107.200.6   
474  
475  
476  
477/etc/sysconfig/network   
478  
479\------------------------------   
480  
481NETWORKING = YES   
482  
483FORWARD_IPV4 = YES   
484  
485HOSTNAME = NICOWARE   
486  
487GATEWAYDEV = eth0   
488  
489  
490  
491安全配置文件   
492  
493\-------------------------------------------------------------------   
494  
495/etc/securetty   
496  
497/etc/ftpuser   
498  
499/etc/ssh   
500  
501/etc/hosts.allow   
502  
503/etc/hosts.deny #详细可以查看man 5 host_access   
504  
505防止root直接登陆是一个上策,便于发生恶性时间时的侦察   
506  
507  
508  
509保护内容的安全性   
510  
511\-------------------------------------------------------------------   
512  
513User apache #运行的用户帐户   
514  
515Group apache #运行的用户帐户组   
516  
517  
518  
519<directory>
520<location>
521<files>   
522  
523  
524  
525使用order,allow和deny总是并行处理的   
526  
527<directory>   
528  
529Order allow,deny   
530  
531Deny from all   
532  
533Allow 192.168.0.1/255.255.255.0   
534  
535</directory>   
536  
537  
538  
539身份验证   
540  
541\-------------------------------------------------------------------   
542  
543  
544  
545AuthType <basic|digest> #验证方式   
546  
547Basic验证方式是用BASE64编码,即是明文传输的   
548  
549  
550  
551  
552  
553AuthName "nico's zone" #验证区域名称   
554  
555AuthUserFile /var/www/authenticaton/.htuser #用户密码文件,使用htpasswd创建   
556  
557AuthGroupFile /var/www/authenticaton/.htuser #用户组文件,需要手工创建   
558  
559require &lt; user| group | valid-user &gt; #需要满足的条件   
560  
561  
562  
563  
564  
565mod_digest.c&lt;非默认&gt;   
566  
567~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
568  
569AuthDi</basic|digest></files></location></directory></directory></remote_addr|remote_host|remote_user|request_method|request_protocol|request_url></combined|common|referer|agent></path|pipe|syslog></emerg|alert|crit|warn|notice|info|debug></directory></path></directory></xxx|max></xxx|all|most></path>
Published At
Categories with 服务器类
Tagged with
comments powered by Disqus