相信有很多朋友们在选择WEB服务器的时候会对Nginx、Apache、Tomcat,包括LNMP、LAMP,甚至还有LANMP等等组合搞晕。我们常用的虚拟主机的时候一般使用的是Apache环境,比如我们使用的cPanel面板管理的虚拟主机,伪静态是用的HTACCESS文件。
不过到目前云服务器开始流行起来,我们也有不少的商家开始转型从虚拟主机过度云服务器,有些网友也是这样子的,虚拟主机还没整太明白,也开始跟风的去用云服务器。于是在Linux无面板的环境中部署WEB环境的时候就晕了。在这篇文章中,以个人站长选择WEB引擎的时候遇到的问题帮助你来选择,如果我们去查询相关的文档,会直接把你整糊涂。
我们看到的常见的有Nginx、Apache、Tomcat 三种服务器WEB环境,都是用来处理HTTP网站网页环境的,前面两者是用来处理PHP居多,Tomcat是用来处理JAVA的,也就是我们常说的JSP语言。目前大部分网友或者CMS的话使用的PHP+MYSQL比较多,所以用前面两者较多。
第一、Nginx 引擎的特点
我们看到有些一键包WEB环境,或者看到的宝塔面板在安装WEB的时候,会看到LNMP,这个N其实就是Nginx引擎的意思。Nginx 拥有高并发、内存消耗少,成本低等特点。
根据有提到官方测试Nginx可以支持超过五万并发连接数,且实际生产中可以支撑2-4万并发连接数。内存占用小,如果我们可以有机会看看,你在服务器中安装Apache和Nginx的时候,对比看看谁占用的内存小,我这边可以看到是Apache稍微高一些的。同样的,这样带来的问题就是Nginx需要的成本低一些。
稍微与Apache不同的是,伪静态方式不同。我们有些朋友习惯直接Apache在根目录.htaccess伪静态文件,而Nginx是需要单独的.conf配置的,这个稍微不同。
第二、Apache 引擎的特点
看到上面提到Nginx种种优点,那是不是比Apache一定好呢?当然也不一定是相对的。比如Apache也是有很多用户群的,甚至个人网站都喜欢用这个WEB环境。Apache 的伪静态rewrite 比nginx 的强大便捷一些,支持的模块多,基本涵盖所有应用,毕竟人家早期是比Nginx应用广,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端等。
Apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程。
第三、Tomcat 引擎特点
在上面我们提到的,一般Tomcat 是处理JAVA,也就是我们说的JSP语言WEB环境的。Tomcat是应用(Java)服务器,是Servlet容器,可以看做是Apache的扩展,可以独立于Apache运行。Tomcat,比较侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想。
实际上我们也可以这样理解,Tomcat部分是Apache服务器的扩展,所以当我们在运行tomcat的时候,它实际上作为一个Apache独立的进程单独运行的。 Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,但是Tomcat处理静态HTML的能力不如Apache服务器。
总结,个人认为,如果你在使用云服务器WEB建站的时候,PHP+MYSQL的时候,建议用LNMP环境,也就是NGINX,当然这个也要看实际的兼容支持的,有的程序必须用APACHE。