Web应用程序总是离不开web服务器的,恰好自己安装并配置过Apache,从图书馆借了本加强一下相关的知识。
Apache服务器,模块化结构,核心组件内核小,具体功能由模块提供。
NCSA,httpd,www.apache.org.
服务器系统:Linux,BSD,Solaris
1./etc/rcx.d/ (x代表的是运行级别runlevel)
2./etc/inetd.conf 文件处理网络上的数据流
3./etc/services定义了操作系统中运行的所有服务
4.Apache配置文件:/etc/apache2/apache2
二进制安装包中进行了通用的配置,源代码安装可以获得巨大的灵活性和完全的配置能力。
二进制安装:sudo apt-get install apache2
源代码安装: ./configure--make--make install
源代码安装的configure中涉及三类命令:生成的文件(file),规则(rule),模块(mod)
windows&Unix (Samba,www.samba.org), Mac OS & Unix (netatalk,www.umich.edu/~rsug/netatalk), Unix系统之间(NFS)
Apache模块:http://modules.apache.org
Apache默认安装的模块足以应付大多数的请求,但依然存在一些特例。
Apache中除了以标准方式执行HTTP和Apache处理错误的方式以外,其他的功能都是嵌入到独立模块中,可拆卸的。
Core模块:Core,mpm_thread_module,mpm_winnt,perchild,prefork
其他模块详细参考http://modules.apache.org,值得注意的是:mod_perl这种嵌入web服务器的解释器。
控制方式:1.直接命令控制 2.apachectl(start,stop, option) 3.系统引导时:System V Unit(Linux,Sun Unix,运行级别概念,init进程)和BSD方式。
Red Hat Linux UPS管理工具。
Web站点的文件和文档组织和结构的文件系统设置。
Apache 日志:mod_log_config模块,access_log,error_log和状态报告,Common Log Format(CLF),日志文件Apache的logs目录。日志文件是有apache2.conf或httpd.conf配置。
access_log的语法规则:host(请求浏览器的IP地址) ident(启动身份核查时表示IdentityCheck) authuser(请求的有效用户名) date(请求日志和时间) request(实际请求) status(HTTP状态码) bytes(返回给客户浏览器的文件大小)
Unix中创建分区分离管理文件,系统文件和用户文件。好习惯:将服务器放在单独的分区上。Linux中的分区程序: cfdisk。文件系统管理命令:cd,mv,cp,rm,mkdir,
文件权限的问题:Unix权限管理:chmod,chown
精简配置文件:highperformance.conf将不需要的配置删除(减少解析负载)
去掉不必要的模块,负载均衡,利用cookie跟踪站点使用情况
集成多种类型数据的软件(字处理软件),将不同类型的数据(type)关联不同类型的处理器(handler)。Multimedia E-Mail Extensions(MIME)
常见的MIME类型有text,multipart,message,application,image,audio,video,这些类型又存在各种子类型,大多数MIME类型根据文件扩展名来识别,Apache中相关的模块;mod_mine和mod_mine_magic
动态web页面推动web的急速发展。CGI是;浏览器和web服务器之间的接口。Apache中CGI相关的模块(mod_actions,mod_cgi,mod_cgid,mod_env),编译器或解释器的选择。一些CGI脚本站点:
http://www.worldwidemart.com/scripts Matt脚本存档
www.cgi-resources.com
www.scriptsearch.com 最大的脚本存档,CGI、shell和其他类型的。
HTML页面,表单form的属性:action,method,enctype,target,input。请求方法:GET和POST。
数据库;平面数据库,关系数据库和文档数据库。
视觉效果越来越重要,图像导航。mod_imap模块
SSI:普通HTML和成熟CGI的中间站
CSS:设计者使用的技巧,用来组织一组网页的视觉外观。
安全性,可访问性,可用性,资源(连接盗窃,数据盗窃,破坏行为)
安全管理软件:入侵检测(Advanced Intrusion Detection Environment,AIDE;w和top命令,以及查看日志文件),端口扫描(专有程序向特定IP地址发送数据包,搜索portscan寻找相关软件,PortSentry)
类似保险,网络安全既是赌博又是保护。Crsf,Dos,SQL注入。最容易出现问题的地方:开放的端口,知名用途的软件,不常使用的服务器,恶意用户。
受到攻击后的处理:1.离线 2.备份 3.通知他人 4.阅读日志log 5.查找后门(探测器,修改的二进制文件[login,su,telent,ls,find,ftp,df,libc],ID程序[setuid和setgid])
安全套接层(SSL)是一种可以网络上建立安全连接的协议,处于HTTP和TCP协议之间,可以对所有类型的HTTP数据进行加密。OpenSSL,mod_ssl,ApacheSSL
加密算法:RC2,RC4,RSA,DES,3DES,DSS。
SSL完全符合TCP协议要求,TCP 具有自己的TCP API。https://
防火墙和代理
Web站点:
Apache相关:www.apache.org www.w3c.org www.apacheweek.com
特殊项目: www.apache-ssl.org perl.apache.org jakarta.apache.org gui.apache.org
技术情报: www.slashdot.org
安全信息: www.cert.org
新闻组:comp.infosystem.www.servers.*
Apache项目的网站的URL模式:projectname.apache.org
上面,大体浏览并记录了参考1中的部分内容。还有其他的书要看完,然后归还给图书馆。
昨天,去一家公司面试,了解到他们使用Nginx作为web服务器,有空学习一下Nginx。
1. Apache Server 2.0 实用指南,Kate Wrightson 著,常晓波等译