第15章 Apache进阶

上传人:熏** 文档编号:243135309 上传时间:2024-09-16 格式:PPTX 页数:114 大小:974.16KB
返回 下载 相关 举报
第15章 Apache进阶_第1页
第1页 / 共114页
第15章 Apache进阶_第2页
第2页 / 共114页
第15章 Apache进阶_第3页
第3页 / 共114页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2016年7月14日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),#,第,15,章,Apache,进阶,主讲人: 梁如军,2015-05-05,本章内容要点,Linux,下的,Web,编程语言,Linux,下的关系数据库,Linux,下的内存键值数据库,Apache,与,CGI,Apache,日志统计分析工具,LAMP,的环境配置及应用,Apache,与,Tomcat,2024年9月16日,2,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),本章学习目标,熟悉常用的动态网站技术,掌握,MariaDB,(MySQL),的安装与配置,掌握,Memcached/Redis,的安装与配置,掌握,Apache,的,CGI,配置,掌握,AWStats,的,安装和,配置,掌握,LAMP,(,PHP,模块),的安装和配置,学会安装配置常用的,LAMP,应用,学会安装配置,JDK,和,Tomcat,学会配置,Aapche,反向代理,Tomcat,2024年9月16日,3,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),Web,编程语言,2024年9月16日,4,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),Linux,下的脚本语言,常用的脚本语言,Bash ,系统必备,PHP ,简明单纯,Perl ,凝练晦涩,Python ,优雅明晰,Ruby ,精巧灵动,脚本语言的主要用途,系统管理,的自动化,动态,Web,编程,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),5,CentOS,下,的脚本语言,脚本语言的,安装,CentOS,官方仓库提供了,Perl/Python/PHP/Ruby,可以使用,yum,安装,脚本语言的模块管理,工具,PHP,:,pear,、,pecl,Perl,:,cpan,Python,:,easy_install,或,pip,Ruby,:,gem,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),6,关系数据库系统,2024年9月16日,7,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),动态网站数据库,动态,Web,站点并非一定要有数据库支持,但大多数应用需要数据库支持,动态网站常用的开源数据库,关系型数据库(,Relational database,),MySQL,:,PostgreSQL,:,http:/www.postgresql.org/,SQLite,:,http:/sqlite.org/,面向文档的数据库(,Document-oriented database,),mongoDB,:,http:/www.mongodb.org/,CouchDB,:,http:/couchdb.apache.org/,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),8,MySQL,/MariaDB,数据库简介,MySQL,是一个单进程多线程、支持多用户、基于客户机,/,服务器(,Client/Server,简称,C/S,)的关系数据库管理系统 。,由一个服务器守护程序,mysqld,和很多不同的客户程序和库组成,支持,FreeBSD,、,Linux,、,MAC,、,Windows,等多种操作系统平台,MySQL,由瑞典,MySQL AB,公司开发。,2008,年,1,月,MySQL,被美国的,SUN,公司收购。,2009,年,4,月,SUN,公司又被美国的甲骨文(,Oracle,)公司收购。,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),9,MySQL,数据库特点,可以同时处理几乎不限数量的用户,可以处理拥有上千万条记录的大型数据,简单有效的用户特权系统,支持常见的,SQL,语句规范,可移植行高,安装简单,小巧,良好的运行效率,有丰富信息的网络支持,相对其他大型数据库而言调试、管理,优化简单,提供多种存储引擎支持,如(,MyISAM,、,InnoDB,等)。,MySQL5.5,默认使用高效的事务引擎,InnoDB,支持复制功能(,Replication,)功能,为高可用的,MySQL,系统提供了可靠方案,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),10,MySQL,的版本,根据,MySQL,的开发情况,可以将,MySQL,分为,Alpha,、,Beta,、,Gamma,和,Generally Available,(,GA,),MySQL,官方为,Linux,下的每一种,GA,版本提供了,RPM,包、二进制包和源码包,为,RedHat,系列发型版提供了,YUM,仓库, Commons License,(,BY-NC-SA,),11,MySQL,的表类型和存储引擎,MySQL,的表类型由存储引擎(,Storage Engines,)决定,,针对不同的存储引擎可以指定相应不同的配置,MySQL,的表主要支持六种类型,事务安全型,(transaction-safe),:,InnoDB,和,BDB,非事务安全型,(non-transaction-safe),:,MYISAM,、,HEAP,、,ISAM,、,MERGE,显示当前数据库支持的存储引擎,:,show engines;,MySQL 5.5/5.6,的默认存储引擎是,InnoDB,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),12,MySQL,的存储引擎比较,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),13,MyISAM vs InnoDB,(,1,),MyISAM,的特点,数据存储方式简单,使用,B+ Tree,进行索引,使用三个文件定义一个表:,.MYI .MYD .frm,少碎片、支持大文件、能够进行索引压缩,二进制层次的文件可以移植,(Linux,、,Windows),访问速度快,是所有,MySQL,文件引擎中速度最快的,不支持一些数据库特性,比如 事务、外键约束等,使用表级锁(,Table level lock,),性能稍差,更适合读取多的操作,表数据容量有限,一般建议单表数据量介于,50w200w,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),14,MyISAM vs InnoDB,(,2,),InnoDB,的特点,使用表空间(,Table Space,)的方式来进行数据存储,(ibdata1, ib_logfile0),支持 事务、外键约束等数据库特性,使用行级锁(,Rows level lock,),读写性能都非常优秀,能够承载大数据量的存储和访问,拥有自己独立的缓冲池,能够缓存数据和索引,在关闭自动提交的情况下,与,MyISAM,引擎速度差异不大,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),15,MyISAM vs InnoDB,(,3,),存储引擎的选择,如果应用不需要事务,处理的只是基本的,CRUD,操作,那么,MyISAM,是不二选择,MyISAM,不支持事务、也不支持外键,但其访问速度快,一般来说,如果需要事务支持,并且有较高的并发读写频率,,InnoDB,是不错的选择,InnoDB,存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。,比起,MyISAM,存储引擎,,InnoDB,写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),16,MariaDB,由原来,MySQL,的作者,Michael Widenius,创办的公司所开发的免费开源的数据库服务,是采用,Maria,存储引擎的,MySQL,分支版本,与,MySQL,相比较,,MariaDB,更强的地方在于,二者支持的不同的引擎。通常可以通过,show engines,命令来查看两种数据库服务器 支持的不同的引擎。,CentOS 7,已默认提供了,MariaDB,而非,MySQL,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),17,安装,MariaDB,服务,安装,# yum install,mariadb mariadb-server,启动,# systemctl start mariadb,# systemctl enable mariadb,设置,MySQL,的,root,用户口令,# yum install pwgen,# pwgen -1 20,Aed7ahBuu7ru2Wooyohg,# mysqladmin -u root password Aed7ahBuu7ru2Wooyohg,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),18,MariaDB,服务概览,软件包:,mariadb-server,服务类型:由,Systemd,启动的守护进程,配置单元:,/usr/lib/systemd/system/,mariadb.service,端口:,3306,配置:,/etc/f,相关软件包:,mariadb,、,php-mysql,、,perl-DBD-mysql,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),19,MariaDB/,MySQL,的配置文件,配置文件为,/etc/f,MariaDB/,MySQL,的详细配置参数的解释请参考,MariaDB/,MySQL,手册,建议,DBA,从头编制适合特定应用的配置文件,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),20,MariaDB/,MySQL,的配置原则,针对不同的服务器硬件进行合理配置(如,CPU,核数、内存大小等),针对是否是独立的服务器进行合理配置(若,Mysql,服务器还同时运行其他服务,就该适当削减其资源占用),针对,MyISAM,或,InnoDB,不同引擎进行不同定制性配置,针对不同的应用情况进行合理配置,尽量使应用本身达到最合理的情况,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),21,MySQL,常用的,公共,配置,选项,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),22,选项,缺省值,推荐值,说明,max_connections,100,1024,MySQL,服务器同时处理的数据库连接的最大数量,query_cache_size,0 (,不打开),16M,查询缓存区的最大长度,按照当前需求,一倍一倍增加,本选项比较重要,sort_buffer_size,512K,16M,每个线程的排序缓存大小,一般按照内存可以设置为,2M,以上,推荐是,16M,,该选项对排序,order by,,,group by,起作用,record_buffer,128K,16M,每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区,可以设置为,2M,以上,table_cache,64,512,为所有线程打开表的数量。增加该值能增加,mysqld,要求的文件描述符的数量。,MySQL,对每个唯一打开的表需要,2,个文件描述符。,常用的,MyISAM,配置,选项,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),23,选项,缺省值,推荐值,说明,key_buffer_size,8M,256M,用来存放索引区块的,缓存值, 建议128M以上,,不要大于内存的,30%,read_buffer_size,128K,16M,用来做,MyISAM,表全表扫描的缓冲大小,.,为从数据表顺序读取数据的读操作保留的缓存区的长度,myisam_sort_buffer_size,16M,128M,设置,恢复,修改表的时候使用的缓冲大小,值不要设的太大,常用的,InnoDB,配置,选项,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),24,选项,缺省值,推荐值,说明,innodb_buffer_pool_size,32M,1G,InnoDB使用一个缓冲池来保存索引和原始数据, 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少,一般是内存的一半,不超过2G,否则系统会崩溃,这个参数非常重要,innodb_additional_mem_pool_size,2M,128M,InnoDB,用来保存,metadata,信息,如果内存是,4G,,最好本值超过,200M,innodb_flush_log_at_trx_commit,1,0,0,代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘,; 1,为执行完没执行一条,SQL,马上,commit; 2,代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上,.,对速度影响比较大,同时也关系数据完整性,innodb_log_file_size,8M,256M,在日志组中每个日志文件的大小,一般是,innodb_buffer_pool_size,的,25%,,官方推荐是,innodb_buffer_pool_size,的,40-50%,设置大一点来避免在日志文件覆写上不必要的缓冲池刷新行为,innodb_log_buffer_size,128K,8M,用来缓冲日志数据的缓冲区的大小,.,推荐是,8M,,官方推荐该值小于,16M,,最好是,1M-8M,之间,配置,MySQL,(,/etc/f,),2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),25,mysqld,# GENERAL,datadir = /var/lib/mysql,socket = /var/lib/mysql/mysql.sock,pid_file = /var/lib/mysql/mysql.pid,user = mysql,port = 3306,storage_engine = InnoDB,# INNODB,innodb_buffer_pool_size = ,innodb_log_file_size = ,innodb_file_per_table = 1,innodb_flush_method = O_DIRECT,# MyISAM,key_buffer_size = ,# LOGGING,log_error = /var/lib/mysql/mysql-error.log,log_slow_queries = /var/lib/mysql/mysql-slow.log,# OTHER,tmp_table_size = 32M,max_heap_table_size = 32M,query_cache_type = 0,query_cache_size = 0,max_connections = ,thread_cache_size = ,table_cache_size = ,open_files_limit = 65535,client,socket = /var/lib/mysql/mysql.sock,port = 3306,MySQL,参考资源,书籍,高性能,MySQL,(第,3,版), MySQL,系列(,3,册,有中译本), Commons License,(,BY-NC-SA,),26,键值缓存系统,2024年9月16日,27,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),键值缓存系统,简介,通常内存键值缓存系统与数据库相结合来使用,通过在内存中缓存数据和对象来减少读取关系数据库的次数,从而提高了动态数据库驱动的网站速度。,若被访问的对象已在缓存中,则直接读取缓存中的数据返还给浏览器;,若未在缓存中,则访问后端数据库查询获取数据并返还给浏览器,同时将查询结果置于缓存系统中以便加快后续访问。,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),28,键值缓存系统,简介(续),键值缓存系统通常占用固定大小的内存来运行,当内存中的缓存被占满后会使用最近最少用(,LRU,)算法自动移除一些缓存对象。,内存键值缓存系统通常是基于,C/S,模型设计的,即包含服务器端和客户端,服务器端是以守护进程形式运行的,提供基于不同语言(如:,PHP,、,Python,、,Ruby,、,Java,等)的多种客户端,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),29,为什么使用键值缓存系统,为了加快,Web,站点的响应速度,通常可以使用基于内存的键值缓存系统:,缓存经常被访问的静态,HTML,页面、,CSS,、,Javascript,、图片,缓存用于生成动态页面的,渲染后的网页模板(,Renderred Templates,),缓存登录,Cookie/Session,、购物车,缓存动态热点数据(从数据库获得的查询结果)等,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),30,Memcached,简介,类型,内存键值缓存,数据存储,将键直接映射为值,操作方法,创建、读取,更新,删除等,其他特性,使用多线程为服务器提供额外的性能,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),31,Memcached,服务概览,软件包:,memcached,服务类型:由,Systemd,启动的守护进程,配置单元:,/usr/lib/systemd/system/,memcached.service,守护进程:,/usr/bin/memcached,端口:,11211,配置:,/etc/sysconfig/memcached,工具:,/usr/bin/memcached-tool,相关软件包:,php-pecl-memcached,,,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),32,安装、配置,Memcached,服务,安装,Memcached,(使用,Remi,仓库中的新版),# yum install memcached,配置,Memcached,# vi /etc/sysconfig/memcached,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),33,PORT=11211“ #,定义监听端口变量,作为,p,参数的值使用,USER=memcached #,定义守护进程的执行用户变量,作为,u,参数的值使用,MAXCONN=5000 #,定义最大并行连接数变量,作为,c,参数的值使用,CACHESIZE=1024 #,定义缓存最大尺寸的变量,作为,m,参数的值使用(单位为,MB,),OPTIONS= #,定义其他,memcached,命令行上可用的参数及其值,启动,Memcached,服务,启动,Memcached,# systemctl start memcached,# systemctl enable memcached,使用,Memcached,的管理工具,# man memcached-tool,显示服务器的当前状态信息,# memcached-tool 127.0.0.1:11211 status,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),34,Redis,简介,类型,内存非关系数据库,数据存储,将键映射为字符串,(String),、哈希,(Map),、列表,(list),、集合,(sets),和有序集合,(sorted sets),等类型的值,操作方法,提供了对于每种数据类型的通用访问模式,为每种数据类型的处理提供大量命令以及部分事务支持,其他特性,发布,/,订阅、主,/,从复制、持久性(,disk-backed,)、脚本(存储过程),2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),35,Redis,服务概览,软件包:,redis,服务类型:由,Systemd,启动的守护进程,配置单元:,/usr/lib/systemd/system/,redis.service,守护进程:,/usr/sbin/redis-server,端口:,6379,配置:,/etc/redis.conf,工具:,/usr/bin/redis-cli, redis-benchmark,相关软件包:,php-pecl-redis,,,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),36,安装、配置,Redis,服务,安装,Redis,(使用,Remi,仓库中的新版),# yum install redis,配置,Redis,# vi /etc/redis.conf,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),37,port 6379#,指定监听端口,maxclients 5000#,指定最大并行连接数,maxmemory 1gb#,指定缓存最大尺寸,maxmemory-policy allkeys-lru#,指定缓存满后的剔除策略,启动,Redis,服务,启动,Redis,# systemctl start redis,# systemctl enable redis,使用,Redis,工具,查看,redis,的当前状态信息,# redis-cli -h localhost -p 6379 info:,监视,redis,的读写操作(,退出),# redis-cli -h localhost -p 6379 monitor,性能测试(,100,个并发连接,,10000,个请求),# redis-benchmark -h localhost -p 6379 -c 100 -n 10000,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),38,Apache,的动态网站技术,CGI,Apache,的第三方脚本语言模块,FastCGI,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),39,CGI,简介,CGI,(,Common Gateway Interface,,通用网关接口) 是一个连接外部应用程序到,HTTP,服务器的标准,CGI,定义了,Web,服务器与外部内容生成程序(通常称为,CGI,脚本或,CGI,程序)之间交互的方法,即:一种基于浏览器的输入、在,Web,服务器上运行的程序方法,从而实现动态,Web,的功能,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),40,CGI,程序,CGI,程序可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。,例如:,perl,、,python,、,ruby,、,php,、,bash,、,C,等,CGI,程序,通常是挂平台的,可以运行在类,UNIX,和,Windows,等众多平台的服务器上,实现同一功能的程序在不同平台上可能会有细微差异,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),41,CGI,的,工作原理,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),42,CGI,的处理步骤,Web,客户端通过网络把用户请求送到服务器,Web,服务器接收用户请求,GET,方法:利用环境变量,QUERY_STRING,接收,POST,方法:利用标准输入接收;环境变量,CONTENT_LENGTH,记录输入字符长度,Web,服务器交给,CGI,程序处理,CGI,程序把动态处理结果通过标准输出传送给,Web,服务器,服务器把最终的,HTML,页面送回到,Web,客户端,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),43,Apache,与,CGI,Apache,支持,CGI,的模块,mod_cgi,(用于基于进程的,prefork MPM,),mod_cgid,(用于基于线程的,worker MPM,),RHEL/CentOS,下,Apache,默认加载,了,mod_cgi,配置,Apache,允许执行,CGI,程序有两种方法,将所有的,CGI,程序放在指定的目录中,并使用,ScriptAlias,指令声明,在任意目录中执行,CGI,程序,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),44,ScriptAlias,/etc/httpd/conf/httpd.conf,里有如下的配置段,以,/cgi-bin/,开头的资源都映射到,/var/www/cgi-bin/,目录,URL,为,http:/www.ls-al.me,/cgi-bin/,test.pl,的请求,,Apache,会试图执行,/var/www/cgi-bin/test.pl,文件(,CGI,程序,文件必须存在而且可执行,),2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),45,ScriptAlias,/cgi-bin/,/var/www/cgi-bin/,AllowOverride None,Options None,Require all granted,创建,CGI,脚本并浏览测试,创建,/var/www/cgi-bin/test.pl,添加可执行权限并进行浏览测试,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),46,#!/usr/bin/perl,print Content-type: text/htmlnn;,print Hello, World. Perl“;,# chmod +x /var/www/cgi-bin/test.pl,# elinks http:/www.ls-al.me/cgi-bin/test.pl,# elinks http:/www.olabs.org/cgi-bin/test.pl,# elinks Commons License,(,BY-NC-SA,),47,ServerName www.olabs.org,DocumentRoot /var/www/vhosts/olabs.org/htdocs/,ScriptAlias /cgi-bin/ /var/www/vhosts/olabs.org/cgi-bin/,AllowOverride None,Options None,Require all granted,ScriptAlias,说明,ScriptAlias,指令除了可以映射目录之外,还可以直接映射,CGI,程序,例如,ScriptAlias /cgit /var/www/cgi-bin/cgit,/var/www/cgi-bin/cgit,是一个,CGI,程序,当访问,http:/xxx.xxx.xxx/cgit,时将直接执行,/var/www/cgi-bin/cgit,程序,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),48,在任意目录中执行,CGI,程序,配置方法,用,AddHandler,或,SetHandler,指令激活,cgi-script,处理器,在目录容器的,Options,指令中启用,ExecCGI,选项,AddHandler /,SetHandler,指令,AddHandler cgi-script .cgi .pl,用于在文件扩展名与特定的处理器,之间建立映射,告诉服务器哪些文件是,CGI,程序文件,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),49,在任意目录中执行,CGI,程序,配置举例,/etc/httpd/conf.d/git.conf,使用别名将,http:/xxx.xxx.xxx,/git,的访问映射到磁盘的,/var/www/git,目录,允许执行,/var/www/git,目录下的后缀名为,.cgi,的程序,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),50,Alias /git /var/www/git,Options +ExecCGI,AddHandler cgi-script .cgi,CGI,的优缺点,优点,安全性好,用,C,语言写的,CGI,程序,编译后的运行速度比脚本运行速度要快,缺点,需要开独立进程(,fork-and-execute,模式,)来处理用户请求,密集请求的情况下容易崩溃,维护成本比脚本语言高,通常,CGI,程序使用,Perl,编写,其语法相对复杂,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),51,解决,CGI,的低效率,为了适应密集请求(高负载)型的,Web,服务器,解决,CGI,的低执行效率的方法,使用,Apache,的第三方脚本语言模块,模块当,Apache,运行后就常驻内存,不会像,CGI,那样每次都要花费时间去,fork,一次,使用,FastCGI,技术,是一,种,常驻(,Long-Live,)型的,CGI,类似于系统守护进程,可以一直执行着为来自服务器的请求提供服务,只要激活后,不会每次都要花费时间去,fork,一次,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),52,Apache,的脚本语言模块,PHP,:,mod_php, Commons License,(,BY-NC-SA,),53,FastCGI,的优点,稳定性:,FastCGI,是以独立的进程池运行来,CGI,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行之,安全性:,FastCGI,和宿主服务器完全独立,即使,FastCGI,僵死也不会导致服务器宕机,扩展性:,FastCGI,是一个中立的技术标准,可以支持任何语言写的处理程序,如:,PHP,、,Perl,、,Python,、,Ruby,、,Java,、,C/C,等,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),54,FastCGI,的优点(续),高性能,FastCGI,将动态逻辑的处理从,Web,服务器中分离出来,大负荷的,I/O,处理还是留给宿主服务器,宿主服务器可以一心一意作,I/O,处理,大量的图片等静态,I/O,处理完全不需要逻辑程序的参与,可以让,Web,服务器运行多个,FastCGI,应用程序的副本来提高性能,FastCGI,可以很有效地利用内存来作缓存来提高性能,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),55,Apache,与,FastCGI,Linux,下常用的,Web,服务器均支持,FastCGI,Apache,、,Nginx,、,Lighttpd,、,Cherokee,Apache,使用,mod_fcgid,模块实现,由,EPEL,仓库的,mod_fcgid,包提供,配置,Apache,允许执行,FastCGI,程序,与允许执行,CGI,程序类似,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),56,ScriptAlias /fcgi-bin /var/www/fcgi-bin,AddHandler fastcgi-script .php .py .pl .fcgi,Options +ExecCGI,Apache,日志统计分析工具,2024年9月16日,57,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),AWStats,简介,AWStats,(,Advanced Web Statistics,)是一个免费的功能强大的服务器日志分析工具,AWStats,的功能,提供访问量,访问次数,访问者,IP,,访问者国家或地区、页面浏览量,点击数,高峰时段、访客持续时间,数据流量等,提供精确到每月、每日、每小时的统计数据,提供访客操作系统、浏览器版本的统计信息,提供,Robots/Spiders,机械访问的统计、无效连接等,搜索引擎、关键字、以及对不同文件类型的统计信息,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),58,CentOS,下的,AWStats,安装,AWStats,# yum -enablerepo=epel install awstats,重要文件说明,配置文件模板,/etc/awstats/awstats.model.conf,每个虚拟主机的配置文件(*为虚拟主机名),/etc/awstats/awstats.*.conf,每小时生成一次,AWStats,数据库的,cron,脚本,/etc/cron.hourly/awstats,用于执行,awstats.pl,的,Apache,的,CGI,配置文件,/etc/httpd/conf.d/awstats.conf,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),59,AWStats,的配置文件,AWStats,在生成其统计数据库时需要其配置文件,AWStats,为不同的站点使用不同的配置文件,配置文件的命名规则,awstats.SITENAME.conf,例如:,站点名为,,则配置文件名为,.conf,常用配置语句,SiteDomain=,HostAliases=,LogFile=,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),60,更新,AWStats,的统计数据库,生成指定站点的日志统计数据库,# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl,-config=SITENAME,生成,所有虚拟主机,的统计数据库,对指定配置文件目录下的每个配置文件生成统计数据库,/usr/share/awstats/tools/awstats_updateall.pl,AWStats,的,cron,脚本使用了,awstats_updateall.pl,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),61,AWStats,的,Apache,配置文件,/etc/httpd/conf.d/awstats.conf,此配置文件是被主配置文件包含的,是全局配置,所有的虚拟主机都将继承这个配置,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),62,ScriptAlias /awstats/ /usr/share/awstats/wwwroot/cgi-bin/,Options None,AllowOverride None,Order allow,deny,Allow from 127.0.0.1,AWStats,配置举例,为虚拟主机配置,AWStats,在,Apache,中为,AWStats,的访问配置主机访问控制、认证授权,生成虚拟主机的,AWStats,配置文件,更新指定配置文件的,AWStats,的统计数据库,访问,CGI,脚本获得,AWStats,的统计输出,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),63,参见教材的操作步骤,LAMP,的环境配置及应用,2024年9月16日,64,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),LAMP,简介,LAMP,是首字母缩略语(,Acronym,),L,:,Linux,操作系统,A,:,Apache Web,服务器,M,:,MySQL,数据库,P,:,PHP,、,Perl,、,Python,或,Ruby,脚本语言,LAMP,的特点,开放灵活、开发迅速、部署方便,高可配置、安全可靠、成本低廉等,与,Java,平台和,.NET,平台鼎足三分,尤其受中小企业的欢迎,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),65,狭义,LAMP,Linux+Apache+MySQL+PHP,是最常用的开源平台组合,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),66,基于脚本语言的,知名,Web,框架,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),67,语言,Web,框架,主页,PHP,symfony,http:/www.symfony-project.org/,Zend, on Rails,http:/www.rubyonrails.org/,Perl,Catalyst,http:/www.catalystframework.org/,安装配置,LAMP,环境,安装配置,PHP,安装和测试,phpMyAdmin,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),68,安装,PHP,安装,PHP,及其相关的软件包,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),69,# yum install php php-cli php-pear,# yum install php-pdo php-mysql,# yum install php-mcrypt php-mbstring,# yum install php-xml php-pecl-yaml,# yum install php-gd php-pecl-imagick,# yum install php-pecl-apc,# yum install php-pecl-memcached php-pecl-redis,查看,PHP,的配置,查看,PHP,的配置,查看,PHP,已加载的模块,# php -m,显示,phpinfo(),的信息输出,# php -I,查看,PHP,的配置文件,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),70,# less /etc/php.ini,# ls /etc/php.d,apc.ini json.ini mysql.ini pdo_sqlite.ini xmlwriter.ini,curl.ini mbstring.ini odbc.ini phar.ini xsl.ini,配置,PHP,的主配置文件,# vi /etc/php.ini,2024年9月16日,梁如军(,linuxbooks,),Creative Commons License,(,BY-NC-SA,),71,#,对于生产平台,应将,display_errors,设置为,Off,display_errors = Off,#,将,log_errors,设置为,On,log_errors = On,#,使用,zlib,库压缩输出并设置压缩级别,zlib.output_compression = On,zlib.output_compression_level = 1,#,不暴露,PHP,被安装在服务器上的事实,expose_php = Off,#,限制一个,PHP,脚本可能消耗的最大内存量,#,这有助于防止写得不好的脚本消耗服务器上的可用内存。,memory_limit = 256M,配置,PHP,的主配置文件,(续),# vi /etc/php.ini,2024年9月16日,梁如军(,linuxbooks,),Creative Commons Licens
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!