`
fjg0427
  • 浏览: 41991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

apache和nginx的介绍

 
阅读更多
1、Apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

apache 的特性:

1) 几乎可以运行在所有的计算机平台上.

2) 支持最新的http/1.1协议

3) 简单而且强有力的基于文件的配置(httpd.conf).

4) 支持通用网关接口(cgi)

5) 支持虚拟主机.

6) 支持http认证.

7) 集成perl.

8) 集成的代理服务器

9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.

10) 支持服务器端包含命令(ssi).

11) 支持安全socket层(ssl).

12) 具有用户会话过程的跟踪能力.

13) 支持fastcgi

14) 支持java servlets

2、nginx

nginx是俄罗斯人编写的十分轻量级的HTTP服务器,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。

nginx做为HTTP服务器,有以下几项基本特性:

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.

无缓存的反向代理加速,简单的负载均衡和容错.

FastCGI,简单的负载均衡和容错.

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。

Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。

Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

apache和nginx对比

Nginx相对于Apache:
1、高并发响应性能非常好。(单台万级并发连接30000-50000/s(简单静态页))
2、反向代理性能非常好。(可用于负载均衡)
3、内存和cpu占用率低。(为Apache的1/5-1/10)
4、功能较Apache少(常用功能均有)
5、对php可使用cgi方式和fastcgi方式,没有模块编译加载方式。

有人通过两者的性能测试比较(点击查看apache和nginx性能比较),得出结论:nginx作单纯的WEB服务器,也就是放静态内容,性能上比Apache要好,特别可承受压力、带宽及资源消耗上都要优于Apache。

apache和nginx使用区别

1、伪静态写法与区别

apache 伪静态写法

rewriteengine on
rewriterule /rss/(.*).xml$  /rss/rss.php?a=$1
rewriterule /xml/(.*).xml$  /xml/xml.php?a=$1

nginx伪静态写法

rewrite ^/rss/(.*).xml$  /rss/rss.php?a=$1 last;
rewrite ^/xml/(.*).xml$  /xml/xml.php?a=$1 last;

nginx伪静态写法时以^开头并且结束处加个last

2、二级域名Rewrite重写规则区别

1)在Apache下用Rewrite绑定二级域名,要先在网站根目录建立一个“.htaccess”文件,

“.htaccess”文件的内容:

#开户重写规则
RewriteEngine on
#让test.web126.com 访问 www 下的 test目录

RewriteCond %{HTTP_HOST} ^test.web126.com$
RewriteCond %{REQUEST_URI} !^/www/test/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /www/test/$1
RewriteCond %{HTTP_HOST} ^test.web126.com$
RewriteRule ^(/)?$ www/test/ [L]

2)在nginx 下绑定二级域名,要在“XXX.conf”设置文件中写规则

server
{
  listen       80;
  server_name test.web126.com;
  index index.html index.htm index.php;
  root  /home/www/test;
        include location.conf;
  error_page 404  /404.html;
}


3、获取用户IP

使用apache服务器时,程序可以使用$_SEVER['ROMOTE_ADDR']获取用户IP

使用nginx服务器时,要使用$_SERVER['HTTP_X_REAL_IP']和$_SERVER['HTTP_X_FORWARDED_FOR']中获取用户的ip地址。原因可以参考我的另一篇博文 使用nginx服务器时,php获取用户ip的方法
分享到:
评论

相关推荐

    apache到nginx配置文件转换工具

    一个开源的Linux下运行的命令行工具,能将Apache的配置文件转换成相应的Nginx的配置文件。本工具能自动将Apache Web服务器的配置文件转化成Nginx的配置文件,减少WEB服务器迁移的工作量。 该工具从Apache Web服务器...

    apache与nginx区别

    综上所述,Apache和Nginx各自有其独特的优势和适用场景。Apache在功能丰富性方面表现突出,适合处理复杂应用逻辑;而Nginx则因其高效、稳定的特点,在处理高并发请求方面更胜一筹。具体选择哪种服务器取决于项目需求...

    Apache + nginx + resin 详细配置

    Apache、Nginx和Resin都是在Web服务器领域中广泛使用的软件。Apache是经典的HTTP服务器,Resin是一款高性能的Java应用服务器,而Nginx以其高效的反向代理和负载均衡能力著称。将这三者结合使用,可以构建出一个高...

    apache与nginx安装使用

    以上就是关于Apache和Nginx的安装与简单配置介绍。具体使用时,还需要根据实际需求进行调整,并注意安全设置,例如SSL/TLS证书的配置、防火墙规则等。希望这些信息能帮助你搭建和管理自己的HTTP服务器。

    Apache2Nginx简单试用

    Apache2Nginx是一个开源的linux下运行的命令行工具.它可以把apache 配置文件转换成对应的nginx 配置文件.对于一般的功能. 比如目录 url重写.这都从测试来看.基本上不存在问题.对于不能转换的.会有注释在转换好的配置...

    cluster+apache+nginx

    文件名"cluster+apache2.2+nginx0.8"暗示了这可能是一个关于Apache 2.2版本和Nginx 0.8版本的集群配置示例。在这个配置中,用户可能会学习到如何安装这两个软件,配置Nginx的反向代理规则,以及如何在Apache上设置...

    apache+nginx+tomcat

    Apache、Nginx 和 Tomcat 是在 Web 服务器领域中常用的三个组件,它们各自承担着不同的职责,并且经常被组合使用以实现高效、稳定的网站部署和应用服务。 Apache HTTP Server 是世界上最广泛使用的开源 Web 服务器...

    php apache/nginx

    Apache和Nginx都是流行的HTTP服务器,用于托管静态和动态内容。PHP是一种广泛使用的开源脚本语言,尤其适合处理动态网页内容。将PHP与Apache或Nginx结合,可以构建高效、可扩展的Web应用程序。 Apache函数: Apache...

    apache2nginx.zip

    这个工具旨在简化迁移过程,使得在性能优化、负载均衡或资源管理等方面有更高需求的开发者和系统管理员能够轻松地从Apache web服务器过渡到Nginx web服务器。Nginx以其高效的反向代理、负载均衡和静态文件处理能力而...

    实战Nginx取代Apache的高性能Web服务器_文字版

    在很多场景下,Nginx被用作替代Apache服务器的选择,尤其是在高流量网站和需要负载均衡的环境中。本实战指南旨在探讨如何通过Nginx实现高性能的Web服务,以提升网站的响应速度和稳定性。 一、Nginx与Apache的性能...

    php运行环境搭建(apache nginx)

    这里我们关注的是两种常见的服务器环境配置:Apache和Nginx,这两种服务器...Apache和Nginx各有优缺点,选择哪种取决于项目需求和个人偏好。在实际操作中,务必参考官方文档和社区资源,以确保环境的稳定性和安全性。

    Nginx+Apache负载均衡

    - **高性能负载均衡**:Nginx+Apache 组合提供了一个高性能、低成本的负载均衡解决方案,能够显著提高网站性能和服务可用性。 - **易于配置与管理**:相比昂贵的商用硬件负载均衡器,Nginx 的配置更加简单直观。 - *...

    linux + apache(nginx) + mysql + php 配置 详解

    Linux + Apache(Nginx) + MySQL + PHP,简称LAMP或LNMP,是两种常见的Web服务器架构,分别基于Apache和Nginx作为Web服务器。这两种架构都是为了搭建动态网站和Web应用程序,支持高并发和高性能。以下是它们的配置...

    高并发环境下 Apache 与 Nginx 的 IO 性能比较

    Apache与Nginx介绍 ##### 1.1 Apache简介 Apache是一款开源的Web服务器软件,能够运行在大多数计算机操作系统上,并因其较高的安全性而被广泛应用。Apache是目前全球使用率最高的Web服务器之一。 - **可移植性**...

    Linux+Apache+Nginx+Mysql+PHP完美配置教程

    2. **关闭RPM安装的Apache和MySQL服务** 为了防止与即将手动编译安装的服务冲突,需要停止已存在的服务,并确保它们不会在重启后自动启动: ``` # service httpd stop # service mysqld stop # chkconfig --...

    Apache Tomcat JBOSS Nginx区别

    Apache、Tomcat、Jetty、Nginx 和 JBoss 都是服务器软件,但是它们的功能和特点各不相同。Apache 和 Tomcat 是Web 服务器和应用服务器,Jetty 是基于 Tomcat 内核的 Servlet 容器引擎,Nginx 是高性能的 HTTP 服务器...

    Linux-Apache-Nginx-MySQL-PHP

    Linux-Apache-Nginx-MySQL-PHP,简称LAMP(在Nginx环境下则为LEMP),是一种常见的开源Web服务器架构,广泛应用于网站开发和部署。这套组合提供了从操作系统到数据库、再到Web服务器和脚本语言的完整解决方案,使得...

    nginx替代方案,nginx代替apache与jboss

    ### Nginx 作为 Apache 和 JBoss 的替代方案 #### 背景介绍 随着互联网技术的不断发展,网站流量的增长对服务器性能提出了更高要求。Apache 和 JBoss 是两种广泛使用的 Web 服务器和应用服务器,但在高并发场景下,...

    Web服务器选型(Apache+Nginx+Lighttpd)之性能对比测试报告.pdf

    这篇性能对比测试报告主要关注了三个主流的Web服务器——Apache、Nginx和Lighttpd在性能上的差异。测试的目的是为了评估这三款服务器在实际应用中的性能表现,为未来的项目选择提供依据。测试环境是在一台配置为8核...

Global site tag (gtag.js) - Google Analytics