Nginx之动静分离 nginx反向代理和tomcat集群(适用于u
为什么要动静分离呢? 拿Nginx来说,Nginx是Web服务器,仅仅只能处理静态资源(例如js,img,css等等),而Tomcat属于应用服务器既能处理静态资源又能处理动态资源(例如jsp,freemarker,volocity等等)。但是Nginx处理静态资源的效率要高于Tomcat,而Tomcat处理静态资源的效率要低于Nginx很多,术业有专攻是也。由此,我相信大家明白了为什么要动静分离了。 如果还有不明白的,简单的说,web开发的本质就是HTTP请求,将成千上万的请求归类进行分发,谁谁处理这个,谁谁处理那个,取其优势,应用之。这样,毋庸置疑,效率肯定会上去的。 另外说下常用的应用服务器和web服务器? 常用的web服务器:Nginx、Apache等等。 常用的应用服务器:Tomcat、Jboss、Resin、WebLogic等等。 其实Apache也可以做动静分离,只不过我认为Nginx更简单。 关于Nginx的安装可以参考菜鸟教程:http://www.runoob.com/linux/nginx-install-setup.html 关于Nginx的学习和各个模块的含义可以参考这个网址:http://www.nginx.cn/doc/ 关于负载均衡和集群均可以参考我的这两篇文章: nginx反向代理和tomcat集群(适用于ubutnu16.04及其centos7) nginx做负载均衡和tomcat简单集群 ? 1.动静分离架构图 ? 2.Nginx配置 主要修改nginx.conf配置文件 upstream yctech{
server 192.168.126.128:8080;
}
server {
listen 80;
server_name yctech;
#charset koi8-r;
#access_log logs/host.access.log main;
root /test;
location / {
proxy_pass http://yctech;
root html;
index index.html index.htm;
}
location ~ ^/yctech1/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ ^/yctech2/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ ^/yctech3/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ ^/yctech4/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|css)$ {
expires 30d;
}
? ? root 对应的html是nginx的一个目录,这个目录下通常是官网的主页。 像root /test; 是因为html下有test目录,而test目录主要放置静态资源,同时也是处理静态资源。 ? 3.编写index.jsp页面测试 <%@ page language="java contentTypetext/html; charset=UTF-8 pageEncodingUTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <htmlheadmeta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"title>Insert title here</bodyimg src="logo_small.png" width="500px" height="500px"/> > jsp页面中的logo_small.png其实是放在test目录下的。 ? 4.重启Nginx ./sbin/nginx -s reload 并在浏览器上输入对应的地址,即可看到对应的效果。 参考思路博文为:https://www.cnblogs.com/xiaoblog/p/4241086.html ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |