这两者都是当前比较主流的开发环境,对于我自身来说,之前基于JAVA语言,采用Springboot框架的时候,我才用的是xampp中的Apache+MySQL。而之后我参加基于PHP语言,采用TP5、Laravel框架的时候,我使用的是PhpStudy中的php-7.2.10-nts+Nginx,一方面是因为后者的Laravel框架要求PHP版本,PhpStudy方便做版本切换和控制,另一方面是后者采用Nginx,可以在高并发的状况下使用更少的资源,体现更高的效率。
1、使用工具
xampp是集成了Apache/Mysql/FileZilla/Mercury/Tomcat等工具的开发环境,对于PHP语言,还是JAVA语言都有一定的友好型,使用也较简单,根据教程配置好之后,直接将项目放于htdocs目录下面即可。一般使用xampp工具的时候,会采用Apache+MySQL。而另一个开发环境即PhpStudy,它的好处在于可以可以切换不同的版本,可以采用PHP+Apache,也可以用PHP+Nginx,便捷实用,当你采用不同框架的时候,可以根据框架对PHP等的版本要求来改动。一般使用PhpStudy来启动Nginx。
2、Nginx的优点
Nginx本身是轻量级的,同比Apache占用更少的系统内存和资源。此外,Nginx处理请求是异步非阻塞的,在高并发的状况下可以保持低资源低消耗高性能。另一方面,Nginx的模块编写相对比较简单,各种高性能模块更新速度也比较快。Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,在高连接并发的情况下,Nginx是Apache服务器不错的替代品:,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一.,能够支持高达 50,000 个并发连接数的响应,整体来说,类似田径场上适合冲刺的黑马运动员。
3、Apache的优点
Apache的rewrite功能比较强大,拥有丰富的功能模块,同比Nginx来说,自身比较稳定,出现的bug也比较少。整体来说,类似田径场上经验丰富发挥稳定的老健将。
4、两者对比
(1)Apache是同步多进程模型,一个连接对应一个进程,而Nginx是异步非阻塞的,多个连接对应一个进程;
(2)Apache配置较为复杂,而Nginx的配置简洁易用;
(3)Apache组件多,对PHP的支持简单,而Nginx需要配合后端使用;
(4)Nginx本身即为一个反向代理服务器,支持更高的并发和负载均衡;
(5)在开发普通web项目的过程中,使用Nginx更好,它在静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache等方面做得都比较好,而在采用PHP+Apache的模式下,如果PHP处理的很慢,或者前端请求压力很大的时候,易造成进程数飙升,从而拒绝服务的现象。