操作系统win7
1.首先,搞清楚web 服务器和 tomcat的区别,以及为什么要用nginx+tomcat:
我们平时对j2ee开发的时候使用的是tomcat服务器,tomcat服务器是用来解析servlet动态网页的,比如jsp。而apache web服务器只能处理静态页面,如html,css等。
其实tomcat也可以解析静态页面,但是效率很差,我们在开发的时候因为注重开发,并不用考虑性能问题,所以并不需要Apache。但是在实际应用中,性能问题是很重要的,所以我们要同时使用web服务器和tomcat服务器。把静态页面交给web服务器,把动态处理交给tomcat。
现在比较流行的是nginx + tomcat的运用。
2.其次了解 eclipse的tomcat的原理避免中间遇到的问题(eclipse启动tomcat看不到欢迎界面):
我的eclipse已经安装了tomcat,但是当我启动tomcat开始一个项目的时候是没问题的,但是当我输入:“localhost://localhost:8080” 确是404错误。这时因为默认下载的tomcat/webapps 下面有个ROOT项目没启动。我们平时靠terminal启动tomcat时,tomcat会启动webapps下面的所有的项目。
而eclipse集成的tomcat是一个容器,并没有Root这个项目。换一种说法:在eclipse下启动你可以看到一个Server的项目,下面有个server.xml文件,在这个文件中有一个Host标签,里面有一个Context标签,这个标签的作用是告诉tomcat需要启动的项,这里并没有ROOT项目。总之,eclipse压根就没有在webapps下启动。只启动了需要启动的项目而已,那怎么样才能让eclipse启动到webapps呢,也就是我们所要看到欢迎界面?
3.设置tomcat的server location 把eclipse的项目直接发布到tomcat的webapps下面。
这样的话就可以看到欢迎界面了。
清除 Server下面的所有发布的项目,然后右击,选择“clean...”
这个时候就可以选择第二项了,如果不clean...是不能选择的。是灰色的。
注意Deploy Path 就是我们需要发布的地方要写webapps,这就是我们要把项目发布的地方,也就是tomcat默认项目的地方。
重启进入 http://localhost:8080 就可以看到欢迎界面了。
4.下载nginx 我的是window7 不需要安装,直接解压就可以用。
配置文件:nginx-1.6.2\conf\ 下面的nginx.conf
里面有太多参数,初步实现只要记住这几个参数,其他参数可以翻书:
server {
listen 80; #监听80接口
server_name localhost:8080;
location ~ (\.jsp)|(\.action)$ {
proxy_pass http://localhost:8080;
}
location ~ \.(html|js|css|png|gif|jpg|JPG)$ {
root C:/harvey/apache-tomcat-8.0.14/webapps/ROOT; #注意反斜杠
}
}
这个服务: 监听的是80端口的请求
第一个location的意思 .jsp和.action结尾的都被 proxy_pass 到http://localhost:8080; 就是说jsp 页面和 action操作,也可以是.do操作都被交给localhost:8080
处理,就是tomcat处理。
第二个location的意思:所有html js css png jpg JPG结尾的文件都去 下面这个root所指向的地址寻找。
这里主要是以正则表达式表达的匹配。
所以只要修改这些,初步的功能就能实现了,其他的一些参数以后再说。
然后开启tomcat 开启nginx
在地址栏输入localhost:80 会显示404 nginx的错误,因为它不知道你这是什么请求。
在地址栏输入localhost:80/index.jsp, 他就会跳到 localhost:8080/index.jsp 这就是tomcat的欢迎页面。
如果我们在地址栏输入localhost/tomcat.png 他就会去我们指定的C:/harvey/apache-tomcat-8.0.14/webapps/ROOT 去找。
这样我们就可以初步的把静态的放在web服务器上,动态的交给tomcat处理。