windows server 2003下配置Apache,当访问人数很多的时候就会在Apache的错误日志里发现好多“ [warn] (OS 64)指定的网络名不再可用。: winnt_accept: Asynchronous AcceptEx failed.” 这可能是由于Apache与windows的不兼容引起,官方已经把此问题收录进BUG列表,但始终没有理想的解决办法。 近日,笔者也遇到了这样的事情,搜索一下,结果是不少,但基本上就一种解决办法。那就是关闭Apache MPM winnt,使用这个指令“Win32DisableAcceptEx”。 不过网上的办法毕竟仅供参考,按照那些做了,仍然不起作用。
Browsing the archives for the apache tag
在网上找到一篇好文,受益非浅。windows 2003 apache2下面: 指定的网络名不再可用 winnt_accept: Asynchronous AcceptEx failed 系列问题的综合整理 〖Apache 指定的网络名不再可用 winnt_accept: Asynchronous AcceptEx failed〗 转帖 (1): 这几天遇到了一个很多人都遇到过的问题,这个问题在google上有太多的人都遇到,但很少有指出最终的解决方案,大部分是解决了AcceptEx failed,但引起了内存的疯狂增加(“memory leak”)。这几天遇到这个问题后也费了不少功夫,但没有从网上找到最根本的解决办法,幸运的是,最终探索出了一个解决方案,在这里写出来,希望能帮助后来遇到问题的难友们尽早解决问题。 遇到的问题比较曲折,大体经过是: 某天,不能访问apache的页面,检查得知,apache在疯狂写日志,而且大部分是一句话:“winnt_accept: Asynchronous AcceptEx failed”,最多的时候写到了200M以上。经各方探索,最终在apache的手册上找到了一个解决方法: 在http.conf配置中设置Win32DisableAcceptEx参数。这样做的原因是,apache在某些Windows版本上可能兼容性不足,在调用AcceptEx接收请求时可能有问题,使用上面的参数禁用后,apache会使用另一套方案替代(BSD),这种方案效率稍微低些。详见: http://httpd.apache.org/docs/2.0/mod/mpm_winnt.htm l#win32disableacceptex
前面我用已经启用了网页压缩功能,见http://blog.haohtml.com/index.php/archives/3723,下面我们来对网页元素有效期进行设置。 首先,启用LoadModule expires_module modules/mod_expires.so,只要在httpd.conf中把前面的#号去掉就可以了。然后在httpd.conf最后添加以下几行 ExpiresActive On <FilesMatch “\.(gif|jpg|png|js|css)$”> ExpiresDefault “access plus 10 years” </FilesMatch> 重启apache,可以用firefox浏览器中的yslow插件查看最终效果,此时”add expires haders”项应该为A。表示配置成功.
先启用 LoadModule deflate_module modules/mod_deflate.so,只需要把前面的#去掉就可以了。 然后在httpd.conf最下面添加以下行: DeflateBufferSize 8096 DeflateCompressionLevel 1 DeflateMemLevel 9 DeflateWindowSize 15 DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio DeflateFilterNote ratio LogFormat ‘”%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate CustomLog logs/deflate.log deflate <Location /> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css application/x-javascript text/plain text/xml </Location> 然后重启apache,即可。可以用firefox的插件yslow来查看效果,此时会看到”Compress components with gzip”项的等级为A,说明配置成功了.
对Apache Server Status的启用状态信息 对Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,所以需要在配置文件httpd.conf里启用这个模块,所前面的#去掉. 然后打开下面的配置 ExtendedStatus On 配置Apache Server Status的权限 <location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from 10.0.10.22 </location>
我们平时使用apache常常了解他的性能只能使用ps aux|grep httpd|wc -l查看有多少个进程,但处理了多少http的请求我们不清楚,进程是不是在工作,还是在等都不是很明白,要了解apache的性能,我们需要使用 Apache Server Status的模块来详细了解apache工作的怎么样.下面我还介绍使用cacti来监控它. 对Apache Server Status的启用 对Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,所以这个需要有 然后打开下面的配置 ExtendedStatus On 配置Apache Server Status的权限
asp程序还是使用IIS来驱动比较好,怎么说都asp和IIS都是微软的产物,各方面的支持都可以得到保证;而且IASP是JAVA程序,速度会比IIS慢,这里之所以介绍Apache+JDK+IASP支持*.asp,是为大家多提供一条路参考而已! 1、安装JDK组件支持IASP(如果你的Windows系统中已经安装了JDK,那么可以省略安装JDK) JDK6官方下载地址: http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe JDK6 API CHM中文参考下载: http://chinesedocument.com/upimg/soft/JDK6API中文参考070114.rar
先按这里的文档对服务器系统安全做设置:http://blog.haohtml.com/index.php/archives/3438 对于php.ini的设置有: 1.修改为安全 safe_mode = true 2.禁用一些系统函数 disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server 3.禁用com组件调用 将 ;com.allow_dcom = true 修改为 com.allow_dcom = false 启用并禁用 4.指定上传文件的临时目录 upload_tmp_dir = “d:\php\upload_tmp” 5.启用特别字符转义功能 magic_quotes_gpc = On 6.关闭错误信息 display_errors=Off 对于虚拟主机配置的安全主要有: <VirtualHost *:80> ServerAdmin zbjywl@163.com DocumentRoot “d:/site/ceshi.papake.net” ServerName ceshi.papake.net DirectoryIndex index.php #限制在固定的目录里,并授权上传文件临时目录 php_admin_value open_basedir “D:/site/ceshi.papake.net;D:/php/upload_tmp” <Directory “d:/site/ceshi.papake.net”> Options Indexes MultiViews AllowOverride None order allow,deny Allow from [...]
在windows环境下,如果用IIS做webserver,可以配合ntfs为每个网站设置不同的用户权限,从而让一个网站的程序只能访问自己目 录下的内容. 而在windows的apache环 境下,由于apache默认是最高的system权限,因此非常危险,若不做安全设置,随便传一个php shell到任何一个网站上,就能控制整台服务器。
1、如果未安装Apache。编译时,加上–enable-deflate,例如:(仅针对Linux版,Windows版无须此步骤) ./configure –prefix=/usr/local/apache –enable-rewrite –enable-so –enable-deflate 2、如果已安装Apache。添加mod_deflate模块,例如:(仅针对Linux版,Windows版无须此步骤) /usr/local/apache/bin/apxs -i -a -c /home/zhangyan/software/httpd-2.0.59/modules/filters/mod_deflate.c 注:/home/zhangyan/software/httpd-2.0.59/为Apache源码路径。