Nginx Tomcat 动静分离实验

**一、安装好Nginx 和Tomcat后,本实验使用源码安装。 **

  • 相关路径:
1、Nginx发布路径:/usr/local/nginx/html/colin1
2、Nginx 虚拟主机配置文件:/usr/local/nginx/conf/vhost 
	配置文件内容如下:
		    server {
        listen       80;
        server_name  www.colin1.com;

        location / {
            proxy_pass http://28.44.20.34:8080;
        }
				# 注意location =/ 无效 必须使用 location /
        location ~ .*\.(jpg|png|bmp|txt|js|css|html|htm|gif|ico|jpeg)$ {
            root   html/colin1;
        }

        location ~ .*\.(jsp|cgi|shtml|php)$ {
            proxy_pass http://28.44.20.34:8080;
        }

}

3、Tomact 发布路径:/data/web/tomact/webapps/ROOT
		

二、实验中遇到的问题

  • 1、虚拟主机定义跟的时候使用 location =/ 无效 必须使用 location /
  • 2、客户端访问jsp内容时,会根据location匹配规则将jsp文件定位到tomcat的发布路径。当jsp里面调用的是静态内容时,会重新定位到一个url访问。以jsp的图片标签为例:
<img src="tomcat.png" alt="[tomcat logo]" />  
# 本质就是访问 http://FQDN/访问的jsp所在的路径/tomcat.png
  • 3、以下为jsp的整个访问过程:
  • 就像其他普通的网页一样,您的浏览器发送一个 HTTP 请求给服务器。
  • Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。
  • JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。
  • JSP 引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。
  • Web 服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。
  • Web 服务器以静态 HTML 网页的形式将 HTTP response 返回到您的浏览器中。
  • 最终,Web 浏览器处理 HTTP response 中动态产生的HTML网页,就好像在处理静态网页一样。