Nginx实现动静分离
我们通过Nginx可以分发请求,实现动态请求转发到Tomcat,静态请求转发到Nginx服务器,来实现动静分离;
基于前面案例,我们再搞一个Nginx,作为静态资源服务器;原先的Nginx是处理负载均衡和动静分离;
前面我们tomcat搞过了 就不重复搞了。
我们先搞一个静态资源处理的nginx服务器;
server里配置下即可;
listen 1010;
server_name img.feng.com;
location / {
root /home/nginx ;
index index.html index.htm;
}
docker run -it --name=myNginx2 -v /home/data/nginx2:/etc/nginx -v /home/data/nginx2data:/home/nginx -p 1010:1010 nginx
我们搞个 静态网页以及图片css js文件; 放到 /home/data/nginx2data 然后同步到/home/nginx 上去;
最终运行:
http://192.168.1.112:1010/有效果的话,说明搭建静态Nginx服务器OK;
接下来,我们配置动静分离;
启动两个tomcat测试
docker run -d --name tomcat1 -p 8080:8080 -v /home/tomcat1/conf/:/usr/local/tomcat/conf/ -v /home/tomcat1/webapps/:/usr/local/tomcat/webapps/ be38ac28efcd
docker run -d --name tomcat2 -p 9090:9090 -v /home/tomcat2/conf/:/usr/local/tomcat/conf/ -v /home/tomcat2/webapps/:/usr/local/tomcat/webapps/ be38ac28efcd
重点我们配置Nginx负载均衡和静态分离;
配置:
http下加:
upstream www.feng.com{
server 172.17.0.4:8080 weight=5;
server 172.17.0.5:9090 weight=10;
}
upstream static.feng.com{
server 172.17.0.3:1010;
}
加一个 静态Nginx的 服务地址;
server下 加个 :
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
proxy_pass http://static.feng.com;
}
location ~ .*\.(js|css)?$ {
proxy_pass http://static.feng.com;
}
location ~ .*\.(html)?$ {
proxy_pass http://static.feng.com;
}
匹配后缀 然后代理转发;
hosts下配置:
192.168.1.112 www.feng.com
192.168.1.112 static.feng.com
配置后 保存:
启动Nginx;
docker run -it --name=myNginx -v /home/data/nginx:/etc/nginx -p 80:80 nginx
然后我们可以测试;
http://static.feng.com/ 我们能访问到静态资源;
http://www.feng.com/ 我们可以访问到动态资源;