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  
 23php 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>OptionsIndexes生效时:   
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的系统环境,IdentifyCheckOn且内容协商成功   
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  
317conditionunix中的正则表达式(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  
333mod_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,allowdeny总是并行处理的   
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