Apache优化指南

调优是一个大主题,涉及面颇广。目前受条件所限,大部分人可能只能从apache本身入手调优。所以本文将主要从apache的配置方面入手来详解apache调优。希望对正在使用apache的朋友有所裨益,有什么问题欢迎交流探讨,大家共同学习共同进步!

KeepAlive参数
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 15
使用keepalive可以在单一连接时进行多个请求。
Keepalivetimeout 每个连接保持的时间
MaxKeepAliveRequests这个我就不解释了,意思是最大保持的连接数,0为不限制。
我在来形象的描述一下,KeepAlive中的连接就像是餐厅中的女服务员,而KeepAliveTimeout就是服务员的忍耐时间,我和几个哥们往店里一坐然后开始唠嗑,根本不理她,她不可能一直站在那吧?所以忍耐度一够她就撤了。
这个数目设多少合适呢?因服务器而异,就像五星级的餐厅和街边小餐馆的区别。

选择多处理模块(Multi-Processing Module,MPM)
这玩意主要负责管理网络连接、调度请求。理解成不同的社会制度就好,万恶的封建主义和万恶的资本主义,很难说的清谁好谁坏,所以针对不同情况选择就好。
每次只能有一种 MPM 被应用,必须使用 –with-mpm=(worker|prefork|event) 静态编译。Apache默认安装是使用一个进程的传统模型称为 prefork。较新的线程化模型称为 worker,它使用多个进程,每个进程又有多个线程,这样就能以较低的开销获得更好的性能。最新的 event MPM 是一种实验性的模型,为不同的任务使用单独的线程池。要确定当前使用的是哪种 MPM,可执行 httpd -l。 Continue reading “Apache优化指南”

RedHat6/Centos6系统中更新python版本

CentOS 6中,Python的版本默认为2.6.6版本,而我们有很多工作可能需要更高的版本,而去Python官网的时候发现,Python的版本已经到3.3了,于是下载并升级了下CentOS中Python的版本。

1,准备工作
将系统中自带的python2.6.6更名一下,因为yum也使用了系统自带的python,所以最好也将yum里指定一下使用的python版本。另外,需要提前安装openssl和openssl-devel,以防止编译安装Python时无法加载SSL模块。

$ python -V    #查看当前版本

$ mv /usr/bin/python /usr/bin/python2.6.6

$ vim /usr/bin/yum
将第一行的/usr/bin/python修改为/usr/bin/python2.6.6

$ sudo apt install gcc g++ make libssl-dev python3-openssl
$ yum install gcc gcc-c++ make openssl openssl-devel

# 安装相关依赖. 需要在make之前做, 不然在运行get-pip.py时
# 会遇到zipimport.ZipImportError: can't decompress data; zlib not available的错误
$ sudo apt-get install zlib1g-dev
$ yum install zlib zlib-devel

2,下载并安装新版python

3.5.5版下载地址
$ wget https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz

2.7.5版下载地址
$ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

$ tar jxvf Python-3.5.5.tgz
$ cd Python-3.5.5
$ ./configure --enable-optimizations    #这里的--enable-optimizations是可以省略的
$ make && make install

Continue reading “RedHat6/Centos6系统中更新python版本”

linux之sed用法

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法。sed命令行格式为:

sed [-nefri] ‘command’ 文件

常用选项:
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i∶直接修改读取的档案内容,而不是由萤幕输出。

常用command:
a∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! Continue reading “linux之sed用法”

RedHat5.5安装Apache2.4.3

一直听说Apache2.4版本有了重大更新,比如速度上超越了nginx等等。所以今天来装一遍试试。在安装过程中参考了这篇文章,但还是遇到些错误,现在记录一下。本文所有的软件可以在这里下载。

1,安装基础包

yum install gcc gcc-c++ zlib zlib-devel openssl openssl-devel libtool -y

2,安装pcre

cd pcre-8.20
./configure --prefix=/usr/local/pcre && make && make install

3,安装http 2.4.3 Continue reading “RedHat5.5安装Apache2.4.3”

RedHat5/CentOS5源代码编译安装LAMP平台(Linux+Apache+MySQL+PHP)

RedHat5/CentOS5源代码编译安装Linux+Apache+MySQL+PHP的全过程,一直都想整理个教程出来的。刚好趁着现在当老师的机会整理出来一份文档,一来留给自己记录用,一来给学生讲解用。

知识普及:
1,LAMP一般指Linux Apache mysql php,其中p不光可以表示php,还可能是php/perl/python之一,这点儿需要注意。
2,本文中的php采用php-5.3.6版,最新版已经不再支持ZendOptimizer,而改用了ZendGuardLoader模块,本文也介绍了相应的安装方法。

一,安装并配置Apache
1,安装Apache

tar -zxvf httpd-2.2.9.tar.gz    #解压
cd httpd-2.2.9    #进入解压的目录
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make && make install    #编译与安装

可能出现的问题:
配置时出现configure failed for srclib/apr错误
解决方法:未安装gcc,请yum install gcc -y Continue reading “RedHat5/CentOS5源代码编译安装LAMP平台(Linux+Apache+MySQL+PHP)”

RedHat 6.3 安装Oracle 11g Release2

一,准备工作

服务器硬件要求:内存>1GB,如果是虚拟机,必须设置内存为1.5G以上
确定好主机名,安装完成以后,不要再修改主机名,一旦修改会导致oracle启动失败,注意:使用默认的localhost.localdomain会导致启动异常
本例中需要安装的程序,补丁等可以从这里下载

1,在windows系统中安装xming

2,安装基本包 Continue reading “RedHat 6.3 安装Oracle 11g Release2”

CentOS6.3安装VLC media player

VLC media player是Linux系统里一个很受欢迎的视频播放器,在Ubuntu软件中心里,这款播放器的下载量非常巨大,可见其受欢迎的程度。下面是在CentOS6.3系统安装VLC media player的过程。

su - root
cd /etc/yum.repos.d/
wget http://pkgrepo.linuxtech.net/el6/release/linuxtech.repo
yum --enablerepo=linuxtech-testing install vlc