精华内容
下载资源
问答
  • 会经常听到Apache服务器,然后之前实习的公司服务端用的java,然后依稀记得使用了nginx反向代理服务器和tomcat,请求先经过nginx然后再去通过tomcat转发请求,然后对Apache服务器和tomcat和nginx理解就有点模糊了,...

    1 问题

    公司服务器用的Apache,后台是php语言,然后服务端用的linux C/C++,会经常听到Apache服务器,然后之前实习的公司服务端用的java,然后依稀记得使用了nginx反向代理服务器和tomcat,请求先经过nginx然后再去通过tomcat转发请求,然后对Apache服务器和tomcat和nginx理解就有点模糊了,然后今天查阅相关资料对使用场景和进行对比

     

     

     

    2 Apache、Tomcat 、Nginx名词解释

    1 ) Apache

    Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上,Linux、Unix、Windows等,属于应用服务器

    Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,比如我之前用过freemarker,也是静态的,但可以通过扩展脚本、模块等支持动态页面等。

    Apache可以支持PHP、cgi、perl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理.

    缺点:配置相对复杂,自身不支持动态页面,需要插件扩展来辅助支持动态页面解析,如FastCGI、Tomcat,搞j2ee的小伙伴知道我们动态页面需要使用到jsp,所以我们是需要Tomcat来解析动态页面的,Tomcat就是servlet容器,当然它可以独立于Apache,直接把tomcat作为服务器

     

     

     

     

    2 ) Tomcat

    Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行,也就是说没有Apache,只有Tomcat也可以解析静态页面和动态页面(jsp),

     

     

     

    3 ) Nginx

    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

     

     

     

     

    3 对比

    1) Apache 与 Tomcat 比较

    相同点:

    都是Apache组织开发的,都有HTTP服务的功能,两者都是开源、免费的。

    不同点:

    a) Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等),而Tomcat是Apache组织在符合Java EE的JSP、Servlet标准下开发的一个JSP服务器

    b) Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态网页如ASP、PHP,Freemarker,你要搞java服务端用到动态语言比如jsp,就需要Tomcat这个解释器,用来解析jsp,Apache是不能解析的,切记。

    c) Apache 侧重于HTTP Server,Tomcat 侧重于Servlet容器,支持JSP,但对静态网页不太理想,也就是说Apache和Tomcat这个2个服务器,Apache对静态文件处理能力强于Tomcat,Tomcat实用于解析动态语言(jsp),我们可以用Apache处理静文件,用Tomcat处理动态文件

    d) Apache是Web服务器,Tomcat是应用(Java)服务器,可以认为是Apache的扩展,但是可以独立于Apache运行

    实际使用:

    Apache+Tomcat(如果是java服务端)

    户端请求的是静态页面,则只需要Apache服务器响应请求。

    客户端请求动态页面,则是Tomcat服务器响应请求,JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。

    可以理解 Tomcat为Apache的一种扩展。

     

     

    2)Nginx 与 Apache 比较

    1 Nginx 优点
    a)轻量级,同样是web 服务,比apache占用更少的内存及资源 。

    b)抗并发,nginx 处理请求是异步非阻塞的多个连接(万级别)可以对应一个进程,而apache 则是同步阻塞型的,同步多进程模型,一个连接对应一个进程

    c)高度模块化的设计,编写模块相对简单。 

    d)提供负载均衡

    e)配置简洁

    f  ) Nginx 静态处理性能比 Apache 高 3倍以上

    e ) nginx只适合静态和反向代理


    反向代理的理解:

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器处理,其本身并不做处理,

    并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个web服务器,实际只做了转发,没有做处理。

     

    2  Apache 优点
    a)apache的 rewrite 比nginx 的强大。 

    b)支持动态页面。

    c)支持的模块多,基本涵盖所有应用。

    d)性能稳定

    e ) Apache 对 PHP 支持比较简单

    f ) 相比nginx,动态请求由apache去做比较好。

     

     

    3)Nginx 与 Tomcat 比较

    我们知道Nginx一般处理静态处理能力很强,但是不能解析动态语言比如(jsp)我们,还需要Tomcat进行解释jsp,所以动态处理我们一般使用Tomcat,静态处理使用Nginx,我之前实习的公司做的那个网站(https://www.shishuo.com)就是Nginx+Tomcat组合使用,Nginx起到反向代理的作用,如果是静态处理通过Nginx处理,动态请求才到后台Tomcat进行处理,这也就是Nginx的动态分离机制,我之前还不是太理解,现在终于理解为什么要这么搭配了,说到底就是Nginx的静态处理能力比Tomcat强,所以我们需要请求先经过Nginx,这里就不需要用到Apache服务器。

     

     

     

     

    4 总结

    a ) 静态处理能力:

    Nginx(至少是Apache3倍)>Apache>Tomcat

    b)Nginx优点:负载均衡反向代理处理静态文件优势,这也就是为啥java服务器Tomcat前面先要经过Nginx服务器处理一波,(只转发请求,不做其他操作,可以看下上面的反向代理的解释),Nginx并发性比较好,CPU内存占用低

    c)Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片,当然读写能力比较强,如果rewrite频繁,那还是Apache较适合,比较稳定,处理动态有优势。前提是没有Tomcat,也就是说不是java服务端。

    d)Tomcat:动态解析容器,处理动态请求,是编译JSP、Servlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理

     

    展开全文
  • 其主要功能在于交互式地浏览修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持...

    一、基础定义

    Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

    Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server。

    通用Servlet
    一般来说,通用Servlet由javax.servlet.GenericServlet实作Servlet界面。程序设计人员可以通过使用或继承这个类来实现通用Servlet应用。

    HttpServlet
    javax.servlet.http.HttpServlet实现了专门用于响应HTTP请求的Servlet,提供了响应对应HTTP标准请求的doGet()、doPost()等方法。

    生命周期
    当servlet被部署在应用服务器中(应用服务器中用于管理Java组件的部分被抽象成为容器)以后,由容器控制servlet的生命周期。除非特殊指定,否则在容器启动的时候,servlet是不会被加载的,servlet只会在第一次请求的时候被加载和实例化。servlet一旦被加载,一般不会从容器中删除,直至应用服务器关闭或重新启动。但当容器做内存回收动作时,servlet有可能被删除。也正是因为这个原因,第一次访问servlet所用的时间要大大多于以后访问所用的时间。

    servlet在服务器的运行生命周期为,在第一次请求(或其实体被内存垃圾回收后再被访问)时被加载并执行一次初始化方法,跟着执行正式运行方法,之后会被常驻并每次被请求时直接执行正式运行方法,直到服务器关闭或被清理时执行一次销毁方法后实体销毁。

    与JSP的关系
    Java服务器页面(JSP)是HttpServlet的扩展。由于HttpServlet大多是用来响应HTTP请求,并返回Web页面(例如HTML、XML),所以不可避免地,在编写servlet时会涉及大量的HTML内容,这给servlet的书写效率和可读性带来很大障碍,JSP便是在这个基础上产生的。其功能是使用HTML的书写格式,在适当的地方加入Java代码片段,将程序员从复杂的HTML中解放出来,更专注于servlet本身的内容。

    JSP在首次被访问的时候被应用服务器转换为servlet,在以后的运行中,容器直接调用这个servlet,而不再访问JSP页面。JSP的实质仍然是servlet。

    JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。

    JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。JSP句法增加了被称为JSP动作的XML标签,它们用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库提供了一种和平台无关的扩展服务器性能的方法。

    JSP被JSP编译器编译成Java Servlets。一个JSP编译器可以把JSP编译成JAVA代码写的servlet然后再由JAVA编译器来编译成机器码,也可以直接编译成二进制码。

    SP和Servlets
    从架构上说,JSP可以被看作是从Servlets高级提炼而作为JAVA Servlet 2.1 API的扩展而应用。Servlets和JSP最早都是由Sun Microsystems(太阳公司)开发的。从JSP1.2版本以来,JSP处于Java Community Process开发模式下。

    静态数据在输入文件中的内容和输出给HTTP响应的内容完全一致。此时,该JSP输入文件会是一个没有内嵌JAVA或动作的HTML页面。而且,客户端每次请求都会得到相同的响应内容。

    1)Apache
    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页,它是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。
    Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
    缺点:配置相对复杂,自身不支持动态页面。
    优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
    (Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。)

    2)Tomcat:
    Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
    Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
    缺点:可以说Tomcat 只能用做java服务器
    优点:动态解析容器,处理动态请求,是编译JSP/Servlet的容器。
    使用端口:
    8005:关闭tomcat通信接口
    8009:与其他http服务器通信接口,用于http服务器集合
    8080:建立http连接 用,如浏览器访问

    3)Nginx
    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。其特点是占有内存少,并发能力强,易于开发,部署方便。Nginx 支持多语言通用服务器。
    缺点:Nginx 只适合静态和反向代理。
    优点:负载均衡、反向代理、处理静态文件优势。Nginx 处理静态请求的速度高于Apache。
    Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。

    二、区别:

    1)Nginx和tomcat的区别
    nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让java web app泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTP Server,而tomcat是一个Application Server是一个Servlet/JSO应用的容器。
    客户端通过HTTP Server访问服务器上存储的资源(HTML文件,图片文件等),HTTP Server是中只是把服务器上的文件如实通过HTTP协议传输给客户端。
    应用服务器往往是运行在HTTP Server的背后,执行应用,将动态的内容转化为静态的内容之后,通过HTTP Server分发到客户端

    注意:nginx只是把请求做了分发,不做处理

    2)Nginx和Apache的区别
    Apache是同步多进程模型,一个连接对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。
    nginx轻量级,抗并发,处理静态文件好
    Apache稳定,对PHP支持比较简单,nginx需要配合其他后端用,处理动态请求有优势,建议使用前端nginx抗并发,后端apache集群,配合起来会更好
    nignx的正向代理和反向代理

    三、优缺点

    1. nginx相对于apache的优点
      轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单提供负载均衡
      社区活跃,各种高性能模块出品迅速

    2. apache 相对于nginx 的优点
      apache的 rewrite(重写) 比nginx 的强大 ;
      支持动态页面;
      支持的模块多,基本涵盖所有应用;
      性能稳定,而nginx相对bug较多。

    3. 两者优缺点比较
      Nginx 配置简洁, Apache 复杂 ;
      Nginx 静态处理性能比 Apache 高 3倍以上 ;
      Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用;Apache 的组件比 Nginx 多 ;
      apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程;
      nginx处理静态文件好,耗费内存少;
      动态请求由apache去做,nginx只适合静态和反向;
      Nginx适合做前端服务器,负载性能很好;
      Nginx本身就是一个反向代理服务器 ,且支持负载均衡

    4. 总结
      **Nginx优点:**负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache;
      **Apache优点:**相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
      **Tomcat:**动态解析容器,处理动态请求,是编译JSPServlet的容器,

    Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。

    Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。

    展开全文
  • 希望各位成为好朋友,欢迎大家一起讨论,一起进步。   4.nginx二级域名转发配置 http { include mime.types; default_type application/octet-stream; charset utf-8; server_tokens off; send...

    1.nginx 

       命令:  启动  start nginx

                 停止   nginx -s stop

                 重启   nginx -s reload

       配置参数

                 http:{

                 server_tokens off;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        access_log off;
        keepalive_timeout 10;
        client_header_timeout 10;
        client_body_timeout 10;
        reset_timedout_connection on;
        send_timeout 10;
        gzip on;
        gzip_disable "msie6";
        gzip_proxied any;
        gzip_min_length 1000;
        gzip_comp_level 4;
        gzip_types text/plain text/css application/json application/x-javascript application/xml text/xml application/xml+rss text/javascript;

     

     

           } 

     

    2. apache 

    2.1主要讲讲配置二级域名,查阅了一些资料,刚开始弄了好久没弄明白,原来可以通过一种简单的方式来解决   

    比如有网站域名  yeegee.com   想在服务器上,通过二级域名来控制访问不同目录

    假设有两个web项目  bbsproj  项目 ,  videoproj 项目  ,  想达到的效果,是通过设置二级域名

    bbs.yeegee.com来访问bbsproj 项目主页 ,video.yeegee.com来访问videoproj项目主页,那么就要进行如下设置:

    1.打开conf/httpd.conf,启用http代理

    LoadModule proxy_module modules/mod_proxy.so

    LoadModule proxy_connect_module modules/mod_proxy_connect.so

    LoadModule proxy_http_module modules/mod_proxy_http.so

      注意,同时也要配置下面这句(支持多站点)

    LoadModule vhost_alias_module modules/mod_vhost_alias.so

    2.2引用外部配置文件

    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf

    如果前面有#号,请去掉。

    2.3.配置httpd-vhosts.conf,  以下是实际项目中用到的配置文件,请君品鉴:

    <VirtualHost *:80>
        ServerAdmin chenyb12345@163.com
        ServerName www.yeegee.com
        ServerAlias www.yeegee.com
        ProxyPass / http://www.yeegee.com:801
        ProxyPassReverse / http://www.yeegee.com:801
        ErrorLog "logs/www.yeegee.com-error.log"
        CustomLog "logs/www.yeegee.com-access.log" common
    </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin chenyb12345@163.com
        ServerName download.yeegee.com
        ServerAlias download.yeegee.com
        ProxyPass / http://download.yeegee.com:802
        ProxyPassReverse / http://download.yeegee.com:802
        ErrorLog "logs/download.yeegee.com-error.log"
        CustomLog "logs/download.yeegee.com-access.log" common
    </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin chenyb12345@163.com
        ServerName taxi.yeegee.com
        ServerAlias taxi.yeegee.com
        ProxyPass / http://taxi.yeegee.com:803
        ProxyPassReverse / http://taxi.yeegee.com:803
        ErrorLog "logs/taxi.yeegee.com-error.log"
        CustomLog "logs/taxi.yeegee.com-access.log" common
    </VirtualHost>


    <VirtualHost *:80>
        ServerAdmin chenyb12345@163.com
        ServerName wx.yeegee.com
        ServerAlias wx.yeegee.com
        ProxyPass / http://wx.yeegee.com:8710/
        ProxyPassReverse / http://wx.yeegee.com:8710/
        ErrorLog "logs/wx.yeegee.com-error.log"
        CustomLog "logs/wx.yeegee.com-access.log" common
    </VirtualHost> 

    <VirtualHost *:80>
        ServerAdmin chenyb12345@163.com
        ServerName trace.chengchengda.com
        ServerAlias trace.chengchengda.com
        ProxyPass / http://121.196.236.198:8000/gtopTracker/
        ProxyPassReverse / http://121.196.236.198:8000/gtopTracker/
        ProxyPassReverseCookiePath /gtopTracker /
        ErrorLog "logs/wx.chengchengda.com-error.log"
        CustomLog "logs/wx.chengchengda.com-access.log" common
    </VirtualHost>

     

    **  ProxyPassReverseCookiePath  是为了在转发时,cookie的级别从 /gtopTracker 提升到 / ,这样,就不会出现session失效的问题了。

     

     配好之后,重启服务器,就可以通过  wx.yeegee.com访问8710端口所在服务器的项目了,如果是需要指定到myapp项目怎么办呢?  很简单,把上面的 http://wx.yeegee.com:8710/ 改成   http://wx.yeegee.com:8710/myapp/   就ok了。  记住,不能少反斜杠哦。

    关于windows 服务器上,如果访问量很大,需要配置的是conf/extra/httpd-mpm.conf

    <IfModule mpm_winnt_module>
        ThreadsPerChild        450  
        MaxConnectionsPerChild 10000
    </IfModule>
     

    根据实际需要做好相应配置即可。

    3.tomcat 主要记录一下启动配置参数

    修改bin/catalina.bat 在首行写入这句

    set JAVA_OPTS=-server -Xms128m -Xmx256m -Xss512k -XX:+AggressiveOpts -XX:+UseBiaseLocking -XX:PermSize=256M -XX:MaxNewSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -XX:MaxPermSize=256m 

    具体什么意思,百度查下吧,我就偷个懒。。。

    下次抽个时间整理一下oracle数据库的优化,oracle的内容比这要多很多。。

    希望这次的内容能够对你有所帮助,如有错误欢迎批评指正,如果有兴趣,可以发邮件到我的Email: chenyb12345@163.com。希望和各位成为好朋友,欢迎大家一起讨论,一起进步。

     

    4.nginx二级域名转发配置

    http {
        include  mime.types;
      
        default_type  application/octet-stream;
        charset utf-8;
        server_tokens off;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        access_log off;
        client_max_body_size 50m;
        keepalive_timeout 10;
        client_header_timeout 10;
        client_body_timeout 10; 
        reset_timedout_connection on;
        send_timeout 10;
        gzip on;
        gzip_disable "msie6";
        gzip_proxied any;
        gzip_min_length 1000;
        gzip_comp_level 4;
        gzip_types text/plain text/css application/json application/x-javascript application/xml text/xml application/vnd.apple.mpegurl video/mp2t application/xml+rss text/javascript;
    
        server {
            listen      80;
    	server_name a.domain.com;	
            location / {
                root www;
            }
    		
          }
    
        server{
    	listen 80;
    	server_name b.domain.com;
    	location / { 
    		proxy_pass http://127.0.0.1:8080/demo1/;
    		proxy_redirect default;
    		proxy_set_header Host $host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header Cookie $http_cookie; 
    		proxy_connect_timeout 30;
    
    
    	}
        } 
    
         server{
    	listen 80;
    	server_name wx.domain.com;
    	location / { 
    		proxy_pass http://127.0.0.1:8081/demo2/;
    		proxy_redirect default;
    		proxy_set_header Host $host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header Cookie $http_cookie; 
    		proxy_connect_timeout 30; 
    
    	}
        } 
    
        
    }

     

     

     

     

     

     


     


     

     

     

    转载于:https://my.oschina.net/u/2457585/blog/626855

    展开全文
  • NginxApache和Tomcat的区别及优缺点

    万次阅读 多人点赞 2019-03-11 21:47:04
    NginxApache和Tomcat的区别及优缺点 1、定义: 1)Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。Apache支持支持模块多,性能稳定,Apache本身...

    Nginx和Apache和Tomcat的区别及优缺点
    1、定义:
    1)Apache

    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页,它是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。
    Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
    缺点:配置相对复杂,自身不支持动态页面。
    优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
    (Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。)

    2)Tomcat:
    Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
    Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
    缺点:可以说Tomcat 只能用做java服务器
    优点:动态解析容器,处理动态请求,是编译JSP/Servlet的容器。

    三个端口:
    8005:关闭tomcat通信接口
    8009:与其他http服务器通信接口,用于http服务器集合
    8080:建立http连接 用,如浏览器访问
    3)Nginx
    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。其特点是占有内存少,并发能力强,易于开发,部署方便。Nginx 支持多语言通用服务器。
    缺点:Nginx 只适合静态和反向代理。
    优点:负载均衡、反向代理、处理静态文件优势。Nginx 处理静态请求的速度高于Apache。
    Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。

    Tomcat结合Apache、Nginx实现高性能的web服务器

    Tomcat虽然是一个servlet和jsp容器,但是它也是一个轻量级的web服务器。它既可以处理动态内容,也可以处理静态内容。不过,tomcat的最大优势在于处理动态请求,处理静态内容的能力不如apache和nginx,并且经过测试发现,tomcat在高并发的场景下,其接受的最大并发连接数是有限制的,连接数过多会导致tomcat处于"僵死"状态,因此,在这种情况下,我们可以利用nginx的高并发,低消耗的特点与tomcat一起使用。因此,tomcat与nginx、apache结合使用共有如下几点原因:
    1、tomcat处理html的能力不如Apache和nginx,tomcat处理静态内容的速度不如apache和nginx。
    2、tomcat接受的最大并发数有限,连接数过多,会导致tomcat处于"僵尸"状态,对后续的连接失去响应,需要结合nginx一起使用。

    通常情况下,tomcat与nginx、Apache结合使用,nginx、apache既可以提供web服务,也可以转发动态请求至tomcat服务器上。但在一个高性能的站点上,通常nginx、apache只提供代理的功能,也就是转发请求至tomcat服务器上,而对于静态内容的响应,则由前端负载均衡器来转发至专门的静态服务器上进行处理。其架构类似于如下图:
    在这里插入图片描述
    在这种架构中,当haproxy或nginx作为前端代理时,如果是静态内容,如html、css等内容,则直接交给静态服务器处理;如果请求的图片等内容,则直接交给图片服务器处理;如果请求的是动态内容,则交给tomcat服务器处理,不过在tomcat服务器上,同时运行着nginx服务器,此时的nginx作为静态服务器,它不处理静态请求,它的作用主要是接受请求,并将请求转发给tomcat服务器的,除此之外,nginx没有任何作用。

    2、区别:
    1)Nginx和tomcat的区别

    nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让java web app泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTP Server,而tomcat是一个Application Server是一个Servlet/JSO应用的容器。
    客户端通过HTTP Server访问服务器上存储的资源(HTML文件,图片文件等),HTTP Server是中只是把服务器上的文件如实通过HTTP协议传输给客户端。
    应用服务器往往是运行在HTTP Server的背后,执行应用,将动态的内容转化为静态的内容之后,通过HTTP Server分发到客户端
    注意:nginx只是把请求做了分发,不做处理!!!

    2)nginx和Apache的区别
    Apache是同步多进程模型,一个连接对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。
    nginx轻量级,抗并发,处理静态文件好
    Apache超稳定,对PHP支持比较简单,nginx需要配合其他后端用,处理动态请求有优势,建议使用前端nginx抗并发,后端apache集群,配合起来会更好
    nignx的正向代理和反向代理

    3、优缺点比较
    1) nginx相对于apache的优点
    轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单提供负载均衡
    社区活跃,各种高性能模块出品迅速
    2) apache 相对于nginx 的优点
    apache的 rewrite(重写) 比nginx 的强大 ;
    支持动态页面;
    支持的模块多,基本涵盖所有应用;
    性能稳定,而nginx相对bug较多。
    3) 两者优缺点比较
    Nginx 配置简洁, Apache 复杂 ;
    Nginx 静态处理性能比 Apache 高 3倍以上 ;
    Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用;Apache 的组件比 Nginx 多 ;
    apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程;
    nginx处理静态文件好,耗费内存少;
    动态请求由apache去做,nginx只适合静态和反向;
    Nginx适合做前端服务器,负载性能很好;
    Nginx本身就是一个反向代理服务器 ,且支持负载均衡
    4) 总结
    **Nginx优点:**负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache;
    **Apache优点:**相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
    **Tomcat:**动态解析容器,处理动态请求,是编译JSPServlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。

    Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。

    展开全文
  • Tomcat 也是Apache软件基金中的一个项目,是一个轻量级的应用服务器 可以认为是Apache的拓展,但是可以独立于Apache运行 特点: 动态解析容器,处理动态请求 只能用作java服务器 Nginx 俄罗斯
  • 一、定义: 1、ApacheApache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。... (Apache可以支持PHPcgiperl,但是要使用Java的话,你需要TomcatApache后台支撑,将Java请求由A...
  • 会经常听到Apache服务器,然后之前实习的公司服务端用的java,然后依稀记得使用了nginx反向代理服务器和tomcat,请求先经过nginx然后再去通过tomcat转发请求,然后对Apache服务器和tomcat和nginx理解就有点模糊了,...
  • 首先,我们从Web服务器Web引用服务器讲起 web服务器 一般我们把发出http请求的一方称作请求方,比如浏览器就是http的请求方,那么应答方就是我们常说的web服务器(web Server)。 在硬件层面上,web服务器可以简单...
  • 1、apache和tomcat区别: Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等) 。 Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器。 apache只支持静态页,...
  • Apache Nginx Tomcat区别

    2018-01-03 14:14:39
    Apache,指的应该是Apache软件基金会下的一个项目...nginx常用做静态内容服务代理服务器(不是你翻墙那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的) HTTP服务器本质上也是一种应用程序—
  • nginx,apache和tomcat

    2013-05-15 14:16:06
    今天配置nginx+tomcat了解了这么一个东西,nginx转发40000端口并配置...实际的访问是这个样子的,nginx解析url转发到40000端口的tomcat上,处理相应url的请求,内部nginx和tomcat用的是http的协议应用里面的端口和协...
  • nginx代理apache和tomcat

    2013-06-18 11:50:46
    1、系统环境装有apache,是www.xx.com的web容器装有tomcat,是yh.xx.com:81的web容器 然后安装nginx代理,使得他们都是80端口访问2、wget http://down1.chinaunix.net/distfiles/nginx-1.0.8.tar.gz安装nginx之前要...
  • Nginx/Apache 和Apache Tomcat 的区别 一、Nginx/Apache 是Web Server,而Apache Tomact是一个servlet container 想请教下,具体区别呢?因为如果使用了Apache Tomact的话已经具备响应http reques...
  • 经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下:一apache支持...
  • 严格的来说,Apache/Nginx 应该叫做「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来说...区别一个HTTP服务器关心的是 HTTP 协议层面的传输访问控制,所以在 Apache/Nginx 上你可以看到代
  • 最近在接触到这几种应用后...现进行归纳整理如下: Apache/Nginx 应该叫做 HTTP Server,即安装后生成httpd服务。Tomcat 则是一个 Application Server,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/P...
  • Apache,Nginx和Tomcat

    2016-01-10 15:23:17
    Apache和Nginx属于Web服务器,而Tomcat是Java应用服务器。 apache和nginx可以归为一类,属于静态页面服务器。 tomcat属于Java Servlet容器,用来生成动态页面的。一. Apache Apache:是C语言实
  • Apache HTTP Server和Nginx本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过Shell、PHP、Python脚本程序来动态生成内容)。 而如果想要使用Java程序来动态生成资源内容,使用这一类HTTP服务器很难...
  • 安装好后会同时运行Nginx, Apache和Tomcat服务器. Nginx用作前端服务器,接收所有http请求并处理返回静态请求,将动态Java请求转发给Tomcat, 将动态PHP请求,转发给Apache. 在我安装配置过程中,缺乏给初学者的详细...
  • Apache/Tomcat/Nginx的区别

    2015-08-15 15:28:03
    详细讲解apache/tomcat和nginx的区别,可以充分掌握他们的应用场景
  • Apache+tomcat集群搭建 ...下载apache,本博客以httpd-2.4.12-x86-vc11-r2版本为例(第一个发行版中的) 2.http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/ 下载...3.注意Apache和...
  • 简单总结下,tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tpmcat中间件,转发到最终的...Apache,Nginx和Tomcat的区别: Apache全称是 Apache Http Server Project, Tomcat全称是 Apache Tomcat。 A
  • Nginx+LAT(Apache+tomcat)的实现和Apache反向代理和负载均衡tomcat的不同方式以及使用memcached保存...1.Nginx +Apache实现负载均衡用户请求至tomcat,其中Nginx是负载均衡调度器,Apache和tomcat在同一台机器...
  • 看到很多应用都是nginx+apache+tomcat,请教下大家用apache的目的是什么,是为了用jk和tomcat实现session stick吗?
  • Tomcat Nginx和Apache HTTP Server区别

    千次阅读 2016-11-17 12:27:40
    Nginx Tomcat Apache
  • 一直在使用或者听到ApacheNginx和Apache Tomcat的大名,但一直没有弄明白他们间的区别,因此在这里进行研究,并得出结论。 2.阐述 2.1.Apache Apache,指的应该是Apache软件基金会下的一个项目Apache ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,006
精华内容 802
关键字:

apache和tomcat和nginx