当前位置: 操作系统/服务器>linux
本页文章导读:
▪Apache增加最大连接数的方法
MaxClients n 1、apache1.x n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,编辑/httpd-2.0.59/include/httpd.h中的HARD_SERVER_LIMIT值.........
▪Windows下php5+apache+mysql5 手工搭建笔记
这里我就不说那些太概念的东西了(其实我也说不出来,哈哈),但是基本的原理程序员是要知道的,例如网站基本运行原理,php运行需要php的环境,java,DotNet同样需要自己的运行环境,那.........
▪iis中flv视频无法播放的处理方法(iis或虚拟主机管理系统)
Flv格式的视频播放,需要空间的支持。如果是独立服务器,请在MIME类型中按下图添加如果使用了虚拟主机,请在管理平台上直接添加(如果不支持添加的,只有联系服务商处理)扩展名填.........
[1]Apache增加最大连接数的方法
来源: 互联网 发布时间: 2013-12-24
MaxClients n
1、apache1.x
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,编辑/httpd-2.0.59/include/httpd.h中的HARD_SERVER_LIMIT值改大然后再编译。
增加apache最大连接数的方法:
在httpd.conf中设置:
MaxClients n
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译
2、apache2.x
系统默认150个连接数,下面的例子修改为1500个。
修改httpd.conf文件
找到
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
修改
MaxClients 150
为
ServerLimit 1500
MaxClients 1500
然后保存退出。
重新启动http服务(/etc/rc.d/init.d/httpd restart)
每次重做服务器,就会学到一些新的东西,所以了解linux最简洁有效的办法,就是不停的重做系统,重新配置优化系统(XD!)。
本次使用了apache2.2.6,编译完成后,最大连接数默认为150,运行一段时间后出现大量的CLOSE_WAIT,于是修改默认连接数。apache2.2以后许多功能都抽出来单独存放了,在http.conf里进行引用。存储连接数等相关指令的文件是httpd-mpm.conf,apache采用的是prefork模式来进行连接数量方面的控制,prefork模块的格式如下:
<ifmodule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0<ifmodule>
其工作原理如下:
控制进程在最初建立StartServers个子进程后, 为了满足MinSpareServers设置的需要,创建一个进程,等待一秒钟,继续创建第二个,等待一秒钟,继而创建四个,如此按指数级增加创建的进程 数,最多达到每秒32个,直到满足MinSpareServers设置的值为止,这也就是预派生(prefork)的由来。这种模式可以使得不必在请求到 来时再产生新的进程,从而减小了系统开销以增加性能。
MaxSpareServers 设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill某些多余进程。这个值一般不要设的过大,但如果设的比 MinSpareServers小,Apache会自动把它调整为MinSpareServers+1。如果站点负载较大的话,可考虑同时加大 MinSpareServers和MaxSpareServers。
MaxRequestsPerChild设置的是每个子进程可以 处理的请求数。每个子进程在处理了MaxRequestsPerChild个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每 个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:
1. 可防止意外的内存卸漏;
2. 在服务器负载下降的时侯会自动减少子进程数。
因此,可根据服务器的负载来调整这个值,如果非零的话,笔者认为10000左右是比较合适的。事实上这个值对Apache的性能影响不是很大。
MaxClients 是这些指令中最为重要的一个,它设定的就是Apache可以同时处理的请求,这是对Apache性能影响最大的参数.在我个人看来,缺省的150是远远不 够的,如果请求总数已达到这个值(可通过ps –ef|grep httpd|wc –l来确认),那么下面的请求就要排队,直到某个已处理请求完毕。这就是为什么系统资源还剩下很多,而http访问却很慢的主要原因。系统管理员可以根据 硬件配置和负载情况来动态调整这个值,虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制是不能大于256。如果把这个值设为大于 256那么Apache将无法起动。事实上,256对于负载稍重的站点也是很不够的。在Apache1.3中这是个硬限制,如果要加大这个值,必须在 configure前手工修改源代码树下的src/include/httpd.h,查找256,会发现#define HARD_SERVER_LIMIT 256这行,把256改为你要增大的值如4000,然后重新编译Apache即可。我想这个方法稍有些经验的Apache系统管理员都知道,不过我相信在 Apache2.0中知道如何加大这个值的人就不会太多了。
在Apache2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。下面是笔者的prefork配置段。
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
BTW: ServerLimit的最大值是20000,这对于大多数站点是足够了,但如果你一定要再加大的话,那么这个值位于源代码树下的server/mpm/prefork/prefork.c中。里面的
#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
这两行就对应着MaxClients和ServerLimit的限制值。 但我相信很少有人可以用到20000的并发连接数。
以上内容来自unix中文 对于prefork的工作模式能够实现的功能描写的比较详尽了。我在用的时候发现ServerLimits和MaxClients这两个参数的顺序是不可以颠倒的,否则重起apache时会报警。根据周超 同学的提醒,凡是有依赖关系的命令,书写应该都是有顺序的。
同时在查资料的过程中,拣到一条命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {[标记错误:for] print a, S[a]}'
这条语句返回结果如下
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。
1、apache1.x
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,编辑/httpd-2.0.59/include/httpd.h中的HARD_SERVER_LIMIT值改大然后再编译。
增加apache最大连接数的方法:
在httpd.conf中设置:
MaxClients n
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译
2、apache2.x
系统默认150个连接数,下面的例子修改为1500个。
修改httpd.conf文件
找到
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
修改
MaxClients 150
为
ServerLimit 1500
MaxClients 1500
然后保存退出。
重新启动http服务(/etc/rc.d/init.d/httpd restart)
每次重做服务器,就会学到一些新的东西,所以了解linux最简洁有效的办法,就是不停的重做系统,重新配置优化系统(XD!)。
本次使用了apache2.2.6,编译完成后,最大连接数默认为150,运行一段时间后出现大量的CLOSE_WAIT,于是修改默认连接数。apache2.2以后许多功能都抽出来单独存放了,在http.conf里进行引用。存储连接数等相关指令的文件是httpd-mpm.conf,apache采用的是prefork模式来进行连接数量方面的控制,prefork模块的格式如下:
<ifmodule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0<ifmodule>
其工作原理如下:
控制进程在最初建立StartServers个子进程后, 为了满足MinSpareServers设置的需要,创建一个进程,等待一秒钟,继续创建第二个,等待一秒钟,继而创建四个,如此按指数级增加创建的进程 数,最多达到每秒32个,直到满足MinSpareServers设置的值为止,这也就是预派生(prefork)的由来。这种模式可以使得不必在请求到 来时再产生新的进程,从而减小了系统开销以增加性能。
MaxSpareServers 设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill某些多余进程。这个值一般不要设的过大,但如果设的比 MinSpareServers小,Apache会自动把它调整为MinSpareServers+1。如果站点负载较大的话,可考虑同时加大 MinSpareServers和MaxSpareServers。
MaxRequestsPerChild设置的是每个子进程可以 处理的请求数。每个子进程在处理了MaxRequestsPerChild个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每 个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:
1. 可防止意外的内存卸漏;
2. 在服务器负载下降的时侯会自动减少子进程数。
因此,可根据服务器的负载来调整这个值,如果非零的话,笔者认为10000左右是比较合适的。事实上这个值对Apache的性能影响不是很大。
MaxClients 是这些指令中最为重要的一个,它设定的就是Apache可以同时处理的请求,这是对Apache性能影响最大的参数.在我个人看来,缺省的150是远远不 够的,如果请求总数已达到这个值(可通过ps –ef|grep httpd|wc –l来确认),那么下面的请求就要排队,直到某个已处理请求完毕。这就是为什么系统资源还剩下很多,而http访问却很慢的主要原因。系统管理员可以根据 硬件配置和负载情况来动态调整这个值,虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制是不能大于256。如果把这个值设为大于 256那么Apache将无法起动。事实上,256对于负载稍重的站点也是很不够的。在Apache1.3中这是个硬限制,如果要加大这个值,必须在 configure前手工修改源代码树下的src/include/httpd.h,查找256,会发现#define HARD_SERVER_LIMIT 256这行,把256改为你要增大的值如4000,然后重新编译Apache即可。我想这个方法稍有些经验的Apache系统管理员都知道,不过我相信在 Apache2.0中知道如何加大这个值的人就不会太多了。
在Apache2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。下面是笔者的prefork配置段。
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
BTW: ServerLimit的最大值是20000,这对于大多数站点是足够了,但如果你一定要再加大的话,那么这个值位于源代码树下的server/mpm/prefork/prefork.c中。里面的
#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
这两行就对应着MaxClients和ServerLimit的限制值。 但我相信很少有人可以用到20000的并发连接数。
以上内容来自unix中文 对于prefork的工作模式能够实现的功能描写的比较详尽了。我在用的时候发现ServerLimits和MaxClients这两个参数的顺序是不可以颠倒的,否则重起apache时会报警。根据周超 同学的提醒,凡是有依赖关系的命令,书写应该都是有顺序的。
同时在查资料的过程中,拣到一条命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {[标记错误:for] print a, S[a]}'
这条语句返回结果如下
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。
[2]Windows下php5+apache+mysql5 手工搭建笔记
来源: 互联网 发布时间: 2013-12-24
这里我就不说那些太概念的东西了(其实我也说不出来,哈哈),但是基本的原理程序员是要知道的,例如网站基本运行原理,php运行需要php的环境,java,DotNet同样需要自己的运行环境,那么php的运行环境就是php的,其实我也不知道怎么说哈,反正就是个runtime,首先,准备几部工作,我们需要:
1.Apache安装包,apache_http_server_source_httpd-2.2.17-win32-src.zip,大家可以直接去官网下载,http://www.apache.org/也可以从镜像中下载,都可以。
2.MySQL安装包,MySQL-essential-5.1.32-win32.msi,下载位置我就不说了哈,大家尽量去官网下载,以免搞回个特洛伊或者绑定恶意插件的。
3.php运行环境,http://www.php.net/,注意不要下载到Source Code,要下载发布版的,要不然一堆.h以我们这样的"高级程序员"的水平是搞不定的。
安装包准备就绪,三个安装包的顺序是没有什么限制的,这里先从安装apache开始。
1. Apache的安装。同样适合大多数人的一路next,next过程中可能需要填写Server Domain,Admin Email等类似的东西,这个可以跳过,但是要注意端口的选择,默认情况下是只有80与8080端口可供选取,当然安装成功之后可以自己随意修改Listen的端口,这个地方避免与IIS默认80的重复,可以选择8080端口。next后安装成功之后的情况就不说了。可能有的盆有安装完成之后在Apache Server Monitor中找不到Apache服务,在services.msc中也找不到与apache有关的服务,我刚好遇到这个问题,解决方法也很简单:管理员身份运行cmd,切换至目录 $Apache2.2$\bin\httpd.exe -k install 就差不多了,我搞的一次提示error,但还是出现了服务,点击start依旧可以运行,正常情况下提示安装成功并开始Testing httped.conf...至此,apache的安装就算完毕,当然大家可以进行测试一下,可以打开httpd.conf,修改大约164行的DocumentRoot配置节,我是这样修改的:DocumentRoot "C:/",注意如果没搞过或者是怕找不回默认的httpd.conf可以先备份一个或者,把你要修改的配置节先注释一个。然后找到大约194行的<Directory 节点,修改为<Directory "C:/">,也就是你要访问的网站的目录,然后重启Apache,在浏览器中输入:http://localhost:8080/testing.html看看吧。
2.MySQL的安装。好像MySQL的安装没什么太需要注意的吧,就是有个是否允许远程访问,如果你只是做测试,那么就不要选中,如果是服务器,那也慎重考虑一下安全问题。
3.php环境的安装,如上所说,下载php环境解压之后,在C盘根目录下建立名为Apahe Group的文件夹,在Apache Group目录下再建立一个文件夹名为php5,因为我下载的php版本为php-5.3.5-Win32-VC9-x86.zip,所以5就是当前运行环境的版本号啊,呵呵,我抄一个高人的。然后将下载包里的所有文件拷贝到php5文件夹中,在其中找到名为php.ini-production的文件,将它重命名为php.ini。打开php.ini,找到short_open_tag,将默认为“short_open_tag= Off”改为“short_open_tag =On”,即让PHP支持简短标签写法,如在设置为Off时,在写程序时用<?=$xxx;?>会报错,要写成<?phpecho $xxx;?>才行。然后在php.ini中找到extension_dir = "./"这一行,将其修改为extension_dir = "C:/Apache Group/php5/ext",这样php运行环境就能根据此目录找到其所需要的扩展插件的位置了,注意要删除行前的分好”;“。然后找到Windows Extensions配置模块,在其下边依次寻找
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll
然后将前面的分号“;”,打开php环境对mysql等过程的支持,这样php程序中采可以进行连接数据库等的操作。最后找到disable_functions = ,将其修改为disable_functions =
passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status。完成之后php运行环境的地址就是:C:\Apache Group\php5,这个地址将在后续的apache配置中用到。
4.apache配置以对php的支持。打开$Apache2.2$\conf\httpd.conf,找到#LoadModule ssl_module modules/mod_ssl.so这行,在其后,加入如下几行:
# 指定php.ini文件所在位置
PHPIniDir "C:\Apache Group\php5"
# 指定php程序的解析模块
LoadModule php5_module "C:\Apache Group\php5\php5apache2_2.dll"
# 指定所要解析的文件的扩展名
AddType application/x-httpd-php .php
# 指定PHP源代码扩展名
AddType application/x-httpd-php-source .phps
保存退出,此时apache+mysql+php5的运行环境就搭建完毕,你可以在测试目录中新建一个文件phpinfo.php,其中写入:<?php phpinfo(); ?>,然后通过http://localhost:8080/phpinfo.php进行访问。如果成功的话,将出现如下图的页面:
1.Apache安装包,apache_http_server_source_httpd-2.2.17-win32-src.zip,大家可以直接去官网下载,http://www.apache.org/也可以从镜像中下载,都可以。
2.MySQL安装包,MySQL-essential-5.1.32-win32.msi,下载位置我就不说了哈,大家尽量去官网下载,以免搞回个特洛伊或者绑定恶意插件的。
3.php运行环境,http://www.php.net/,注意不要下载到Source Code,要下载发布版的,要不然一堆.h以我们这样的"高级程序员"的水平是搞不定的。
安装包准备就绪,三个安装包的顺序是没有什么限制的,这里先从安装apache开始。
1. Apache的安装。同样适合大多数人的一路next,next过程中可能需要填写Server Domain,Admin Email等类似的东西,这个可以跳过,但是要注意端口的选择,默认情况下是只有80与8080端口可供选取,当然安装成功之后可以自己随意修改Listen的端口,这个地方避免与IIS默认80的重复,可以选择8080端口。next后安装成功之后的情况就不说了。可能有的盆有安装完成之后在Apache Server Monitor中找不到Apache服务,在services.msc中也找不到与apache有关的服务,我刚好遇到这个问题,解决方法也很简单:管理员身份运行cmd,切换至目录 $Apache2.2$\bin\httpd.exe -k install 就差不多了,我搞的一次提示error,但还是出现了服务,点击start依旧可以运行,正常情况下提示安装成功并开始Testing httped.conf...至此,apache的安装就算完毕,当然大家可以进行测试一下,可以打开httpd.conf,修改大约164行的DocumentRoot配置节,我是这样修改的:DocumentRoot "C:/",注意如果没搞过或者是怕找不回默认的httpd.conf可以先备份一个或者,把你要修改的配置节先注释一个。然后找到大约194行的<Directory 节点,修改为<Directory "C:/">,也就是你要访问的网站的目录,然后重启Apache,在浏览器中输入:http://localhost:8080/testing.html看看吧。
2.MySQL的安装。好像MySQL的安装没什么太需要注意的吧,就是有个是否允许远程访问,如果你只是做测试,那么就不要选中,如果是服务器,那也慎重考虑一下安全问题。
3.php环境的安装,如上所说,下载php环境解压之后,在C盘根目录下建立名为Apahe Group的文件夹,在Apache Group目录下再建立一个文件夹名为php5,因为我下载的php版本为php-5.3.5-Win32-VC9-x86.zip,所以5就是当前运行环境的版本号啊,呵呵,我抄一个高人的。然后将下载包里的所有文件拷贝到php5文件夹中,在其中找到名为php.ini-production的文件,将它重命名为php.ini。打开php.ini,找到short_open_tag,将默认为“short_open_tag= Off”改为“short_open_tag =On”,即让PHP支持简短标签写法,如在设置为Off时,在写程序时用<?=$xxx;?>会报错,要写成<?phpecho $xxx;?>才行。然后在php.ini中找到extension_dir = "./"这一行,将其修改为extension_dir = "C:/Apache Group/php5/ext",这样php运行环境就能根据此目录找到其所需要的扩展插件的位置了,注意要删除行前的分好”;“。然后找到Windows Extensions配置模块,在其下边依次寻找
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll
然后将前面的分号“;”,打开php环境对mysql等过程的支持,这样php程序中采可以进行连接数据库等的操作。最后找到disable_functions = ,将其修改为disable_functions =
passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status。完成之后php运行环境的地址就是:C:\Apache Group\php5,这个地址将在后续的apache配置中用到。
4.apache配置以对php的支持。打开$Apache2.2$\conf\httpd.conf,找到#LoadModule ssl_module modules/mod_ssl.so这行,在其后,加入如下几行:
# 指定php.ini文件所在位置
PHPIniDir "C:\Apache Group\php5"
# 指定php程序的解析模块
LoadModule php5_module "C:\Apache Group\php5\php5apache2_2.dll"
# 指定所要解析的文件的扩展名
AddType application/x-httpd-php .php
# 指定PHP源代码扩展名
AddType application/x-httpd-php-source .phps
保存退出,此时apache+mysql+php5的运行环境就搭建完毕,你可以在测试目录中新建一个文件phpinfo.php,其中写入:<?php phpinfo(); ?>,然后通过http://localhost:8080/phpinfo.php进行访问。如果成功的话,将出现如下图的页面:
[3]iis中flv视频无法播放的处理方法(iis或虚拟主机管理系统)
来源: 互联网 发布时间: 2013-12-24
Flv格式的视频播放,需要空间的支持。如果是独立服务器,请在MIME类型中按下图添加
如果使用了虚拟主机,请在管理平台上直接添加(如果不支持添加的,只有联系服务商处理)
扩展名填写:.flv
Mime类型填写:flv-application/octet-stream
如果使用了虚拟主机,请在管理平台上直接添加(如果不支持添加的,只有联系服务商处理)
扩展名填写:.flv
Mime类型填写:flv-application/octet-stream
最新技术文章: