Nginx自学手册(六)Nginx+Tomcat实现动静分离

(一)简述

Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache、Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Tomcat为例说明。

(二)环境简介

服务器名称 IP 备注
Nginx服务器 192.168.180.4
Tomcat服务器 192.168.180.23
client 192.168.181.231 客户端访问

(三)具体步骤:

(1)tomcat服务器(192.168.180.23)的相关配置配置

1.1 tomcat的安装及相关环境变量的配置可以参考前面文档,具体本次试验省略了

1.2 ,启动tomcat测试界面,打开会出现测试页面。

[[email protected] local]# /usr/local/apache-tomcat-7.0.63/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/apache-tomcat-7.0.63
Using CATALINA_HOME:   /usr/local/apache-tomcat-7.0.63
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.63/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_131/
Using CLASSPATH:       /usr/local/apache-tomcat-7.0.63/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.63/bin/tomcat-juli.jar
Tomcat started.

1.3新建测试页面。在/usr/local/apache-tomcat-7.0.63/webapps下新建html目录和index.html文件

[[email protected] local]# mkdir /usr/local/apache-tomcat-7.0.63/webapps/html
[[email protected] local]# vim /usr/local/apache-tomcat-7.0.63/webapps/html/index.html
this is tomcat index.html
and this ip:192.168.180.23
port:8080

1.4修改server.xml文件的测试路径的路径。在<host> ****</host>标签之间添加上:  <Context path="" docBase="html" debug="0" reloadable="true" />

path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;
docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个html目录,让该目录作为我的默认目录。
debug和reloadable一般都分别设置成0和true。

[[email protected] local]# vim /usr/local/apache-tomcat-7.0.63/conf/server.xml 
   <Host name="localhost"  appBase="webapps"                                                                                                                                                 
            unpackWARs="true" autoDeploy="true">                                                                                                                                                
                                                                                                                                                                                                
        <!-- SingleSignOn valve, share authentication between web applications                                                                                                                  
             Documentation at: /docs/config/valve.html -->                                                                                                                                      
        <!--                                                                                                                                                                                    
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />                                                                                                                    
        -->                                                                                                                                                                                     
       <Context path="" docBase="html" debug="0" reloadable="true" />                                                                                                                           
        <!-- Access log processes all example.                                                                                                                                                  
             Documentation at: /docs/config/valve.html                                                                                                                                          
             Note: The pattern used is equivalent to using pattern="common" -->                                                                                                                 
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                                                                                                           
               prefix="localhost_access_log." suffix=".txt"                                                                                                                                     
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />                                                                                                                                    
                                                                                                                                                                                                
      </Host>

1.5修改web.xml文件,查看html文件的内容。在<welcome-file-list>****</welcome-file>段之间添加上:<welcome-file>html</welcome-file>。完成之后重启即可。

[[email protected] local]# vim /usr/local/apache-tomcat-7.0.63/conf/web.xml 
 <welcome-file-list>
        <welcome-file>html</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

1.6新建相关的测试页面,如test.jsp test.do

[[email protected] html]# pwd
/usr/local/apache-tomcat-7.0.63/webapps/html
[[email protected] html]# cat test.jsp 
this is tomcat of test.jsp
[[email protected] html]# cat test.do 
welcome to tomcat ,this is test-do.do

通过浏览器访问的结果如下:

a.访问默认页面:

b.访问test.jsp页面

c.访问test.do页面

(2)Nginx服务器的相关配置

[[email protected] server]# vim /usr/local/nginx/conf/server/server.conf
server {
         listen    80;
         server_name  xn2.lqb.com;
         root /html/xn2;
    #    rewrite ^/(.*)$ https:xn3.lqb.com/$1 permanent;
     location / {
       index index.html;
    #    proxy_cache mycache;
    #    proxy_cache_valid 200 3h;
    #    proxy_cache_valid 301 302 10m;
    #    proxy_cache_valid all 1m;
    #    proxy_cache_use_stale error timeout http_500 http_502 http_503;
    #    proxy_pass http://192.168.180.9;
    #    proxy_set_header Host    $host;
    #    proxy_set_header X-Real-IP  $remote_addr;
                     }
       location  /ie/
           {
             index index.html;
             }
       location ~ .*\.(gif|jpg|jpeg|png|swf)$  {      #所有的静态文件以gif、jpg等结尾的都在本地打开,目录为/html/xn2下,保存时间为30天
                     expires 30d;
                          }
       location ~ (\.jsp)|(\.do)$ {                 ##########所有的以jsp .do的动态请求都交给后边的tomcat代理服务器处理。
                proxy_pass http://192.168.180.23:8080;
                proxy_redirect off;
                proxy_set_header HOST $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                       }
                    }
[[email protected] server]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[[email protected] server]# /usr/local/nginx/sbin/nginx -s reload

访问结果如下:

a.访问默认页面,会直接访问nginx所默认的页面,而不会调到后台tomcat服务器页面

b.访问.do页面。其实访问的就是tomcat后台test.do页面

c.访问jsp页面。其实访问的就是tomcat后台test.jsp页面

至此nginx+tomcat的动静分离配置完成。

时间: 2024-12-17 17:46:22

Nginx自学手册(六)Nginx+Tomcat实现动静分离的相关文章

nginx+tomcat实现动静分离

一.构建java语言环境Jdk用于设置java程序运行环境,当需要运行java语言时,则必须先设置jdk环境.1. 获取二进制文件.# sh jdk-6u32-linux-x64.bin# mv jdk1.6.0_32/ /usr/local/jdk2.给jdk1.6.0_32/做软链接,方便jdk更新# ln -s /usr/local/jdk/ java3.设置java命令运行环境,并使其生效.# vim /etc/profileexport JAVA_HOME=/usr/local/jdk

Nginx+Tomcat实现动静分离和负载均衡

一.动静分离 Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是将动态请求和静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面.动静分离从目前实现角度来讲大致分为两种,一种是纯粹的把静态文件放在独立的服务器上,独立出来用域名访问,也是目前主流推崇的方案:另外一种方法就是动态跟静态文件混合在一起部署,通过Nginx来分开. 为什么要动静分离? Tomcat是一个比较全面的web容器,对静态网页的处理,应

Nginx自学手册(四)反向代理和缓存

(一)nginx反向代理 什么是代理服务器 :代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机. 为什么要使用代理服务器 1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度. 2)防火墙作用 由于所有的客户机请求都必须通

nginx+tomcat实现动静分离(转)

本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat.配置 Nginx,当请求的是 html.jpg 等静态资源时,就访问 A 主机上的静态资源目录:当用户提出动态资源的请求时,则将请求转发到后端的 B 服务器上,交由 Tomcat 处理,再由 Nginx 将结果返回给请求端. 提到这,可能有您会有疑问,动态请求要先访问 A,A 转发访问 B,再由 B 返回结果给 A,A 最后又将

HTTP/NGINX+TOMCAT实现动静分离

什么是TOMCAT? Tomcat和其他web服务器一样,可以响应HTML的请求,实际上Tomcat是Apache的服务器的扩展,但是运行时他是独立运行的.另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式,但是它的静态页面处理能力比较差.可以使用动静分离来提高站点性能. JAVA Java的技术体系有三个分类:java2SE,java2EE,jave2ME(移动开发).jdk其实相当于java2SE.java2EE相当于是在jdk中添加了一些企业级类库,

nginx+Tomcat实现动静分离架构

最近新部署了一个项目jlj-cms-erp-web,要求使用nginx+Tomcat将静态页面和动态的请求分开处理,减轻Tomcat服务器的压力 在部署项目的这台机器上(192.168.1.110)并没有nginx,所以还需要将这台机器上生成的静态页面备份到装有nginx的另一台机器上(192.168.1.191) 首先安装tomcat,具体过程不详细写了,见博客 http://itzhongxin.blog.51cto.com/12734415/1915155 注意修改端口号.jvmRoute

Nginx自学手册(一) upstream及fastcgi

(一)nginx upstream实现负载均衡 Ngx_http_upstream_module模块可实现七层负载均衡,定义的服务器组可被proxy_pass.fastcgi_pass.uwsgi_pass.scgi_pass和memcached_pass所引用,具体可以参考官方文档: http://nginx.org/en/docs/http/ngx_http_upstream_module.html 1,当前的环境: Nginx upstream IP:192.168.180.2 node1

Nginx反向代理、负载均衡、动静分离、缓存、压缩、防盗链、跨域访问

一.反向代理 1.在192.168.189.130机器启动tomcat服务,http://192.168.189.130:8080/ 访问服务正常 2.在192.168.189.131机器配置nginx server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://192.168.189.130:80

Linux Centos7 实现nginx的七层负载均衡和动静分离

一:环境准备一个nginx代理服务器 三台http服务器两台处理静态和一台处理动态.(nginx/1.17.3) 二.在nginx主配置文件配置nginx反向代理upstream(地址池)指向真实服务器 vim /etc/nginx/nginx.conf 在http标签中加 upstream static { server 10.30.161.214:80 weight=2 max_fails=2 fail_timeout=2s; server 10.30.161.242:80 weight=2