看你的项目,apache肯定好于iis的,但是apache和nginx之间也是有区别的。
轻量级,同样起web 服务,比apache 占用更少的内存及资源 ,抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 ,高度模块化的设计,编写模块相对简单,社区活跃,各种高性能模块出品迅速啊
apache 相对于nginx 的优点:
rewrite ,比nginx 的rewrite 强大,模块超多,基本想到的都可以找到,少bug ,nginx 的bug 相对较多,超稳定,存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。
---------------------
IIS与Tomcat的区别
IIS是微软公司的Web服务器。主要支持ASP语言环境.
Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的SJP语言环境容器,严格得说不能算是一个WEB服务器,而是Apache服务适配器。
tomcat主要的任务不是WEB服务,而是支持JSP语言环境.
IIS就是也款WEB服务器,支持ASP语言环境
Apache与Tomcat的区别
APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页. 但asp,php,cgi,jsp等动态网页的就不行.
如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页, 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK 整合的好处是:如果客户端请求的是静态页面,则只需要Apache服务器响应请求如果客户端请求动态页面,则是Tomcat服务器响应请求因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销 .
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展。
Apache:普通服务器,本身只支持html即普通网页,它是html容器,功能像IIS一样
tomcat:解释java程序(jsp,serverlet),它是是jsp/servlet容器,用于发布JSP及JAVA的
apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),tomcat就是一个桶(装像JAVA这样的水),而这个桶也可以不放在卡车上。
IIS与 Apache的区别
对于中小企业来说建立自己的网站,对外展示自己的页面是最平常不过的事情了。目前最流行的建立WWW服务工具就要属Apache与IIS了。那么他们之间都有什么区别呢?到底哪个工具才是最适合我们的呢?今天就来讨论下这个问题。
一,在apache中php以模块的方式与apache结合的即PHPIniDir "E:\phpsite\php"(这部是设置php.ini的位置) LoadModule php5_module "E:/phpsite/php/php5apache2_2.dll"
二,在用IIS整合php时,有两种方式:ISAPI(.exe可执行文件【php.exe,php-cgi.exe】)与CGI(.dll动态链接库)模式,这两种方式,我们都可以看到phpinfo页面,但是使用ISAPI模式,无法读取环境变量,所以通过环境变量PHPRC设置的php.ini路径无法找到。使用CGI就可以,这样就不必把好多文件拷到系统文件下。
三,配置文件(PHP 3 中是 php3.ini,自 PHP 4 起是 php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。
php.ini 的搜索路径如下(按顺序):
* SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令 行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量)
*HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 注册表位置)
*PHPRC 环境变量
*当前工作目录(对于 CLI)
*web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况)
*Windows 目录(C:\windows 或 C:\winnt),或 --with-config-file-path 编译时选项指定的位置
我在Server2003+php4的环境下遇见了这个问题,解决的方法是在前面写PATH环境变量的时候,添加一个PHPRC,指向x:\php4\php.ini,重新启动即可,如果实在还是不行的,最后还有一招就是安装zend,php加速器,因为安装zend的时候,会指定php.ini的路径,也会指定所使用的服务器是IIS还是Apache,起本质是对注册表做了修改,但是我不知道修改了哪个位置,所以我在上面的操作还是无效的情况下,最后安装Zend,终于成功解决问题了。
四,IIS下PHP的ISAPI和FastCGI比较 (2009-8-2)
1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的 用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。
3、FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载 是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。
以 ISAPI 模式运行 PHP 的,这种方式最大的缺点就是稳定性不好,当 PHP 出错的时候,Apache进程也死掉了
FastCGI 模式运行 PHP 的优点:
以 FastCGI 模式运行 PHP 有几个主要的好处。首先就是 PHP 出错的时候不会搞垮 Apache,
只是 PHP 自己的进程当掉(但 FastCGI 会立即重新启动一个新 PHP 进程来代替当掉的进程)。
其次 FastCGI 模式运行 PHP 比 ISAPI 模式性能更好
最后,就是可以同时运行 PHP5 和 PHP4
FastCGI 模式的一些缺点:
说完了好处,也来说说缺点。用 FastCGI 模式更适合生产环境的服务器。
但对于开发用机器来说就不太合适。因为当使用 Zend Studio 调试程序时,
由于 FastCGI 会认为 PHP 进程超时,从而在页面返回 500 错误
如果你是使用windows系统的服务器,建议是IIS,因为这种web环境在windows下跑php是性能最好的,而且功能很多。
如果你是使用Linux服务器,比如CentOS和Ubuntu之类的,我建议是用Apache和nginx,这两个在Linux下性能最佳,本身来说Linux类服务器安全性和资源消耗都比windows低,而且安全性好。
至于Apache和nginx的选择,如果要方便配置,快速搭建,需要很多功能,可以选择Apache。如果要性能极佳,稳定性,追求速度,自身有技术的,可以选择nginx。
总得来说。
php不建议在windows服务器运行,iis也只支持windows服务器,Apache和nginx在windows都比较卡顿。所以我建议你使用Linux服务器,并根据自身要求从Apache和nginx之间选择。
1、稳定性
稳定性是web服务器不间断运行的根本。对于一个网站来说也是尤为重要的。在正常的运载过程中,IIS的稳定性稍逊于Apache,如果保持长时间的运行而不重启的情况下,偶尔会出现500错误,甚至还有可能出现莫名的假死情况。要解决这一问题用户可以不定期的重启一下,这种情况将会有所好转。反观Apache则表现的非常稳定。
2、安全性
安全性是所有服务应用的重中之重。而且当前各种莫名的攻击大肆侵略着各种不同的服务器。早期的IIS在安全性上有所欠缺,不过随着微软公司的完善,各种补丁更新的升级,尽可能的提高了网站安全性上。Apache得益于先天的优势,一般用户都会在Linux环境下运行Apache,所以安全性自然也没得说。安全性的话,Apache和IIS可以说是旗鼓相当。
3、难易度
一款软件应用的上手难度直接影响着用户群体的大小。IIS自然不用多说,微软公司一直都是以易操作的图形化深得人心。上手操作、发布网站比较简单快捷。但是,要想精通的话还是挺困难的。APACHE则比IIS难上许多,首先一定要具备基础的计算机及互联网知识。所以说,IIS在这个环节上优势巨大。这也是这两者拉开差距的最大因素。
4、扩展性
IIS只能在windows环境下运行,拓展性可想而知,脱离的windows它将一事无成。不过运行ASP和.net非常优秀。而Apache自然无需多说,开放的源代码,拓展能力极强。支持几乎所有的语言。这个环节Apache完胜。