nginx基本运用介绍(二)
1.Nginx反向代理
在说反向代理的之前我们先说说正向代理的概念
什么是正向代理?
正向代理,架设在客户机与目标主机之间,只用于代理内部网络对 Internet 的连接请求,客户机必须指定代理服务器,并将本来要直接发送到 Web 服务器上的 Http 请求发送到代理服务器中。
什么是反向代理?
反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。
nginx反向代理实例
我们要实现下访问Nginx的时候,代理请求tomcat服务器;
启动nginx
docker run -it --name=myNginx -v /home/data/nginx:/etc/nginx -p 80:80 nginx
启动tomcat
docker run -d -p 6868:8080 71b53e8b8f8c(镜像id)
nginx配置如下:
上面标记处是容器内对应的ip,可以用inspect查看
这样可以实现Nginx反向代理 ,我们访问Nginx的时候,代理请求 tomcat服务器,当然前提是我们要重启下nginx
注:上图第二处标记处本地用的是服务器ip,容器ip访问不了,自己修改一下
当然本机修改hosts可以搞个域名映射本机
C:\Windows\System32\drivers\etc
自己服务器ip www.jiangnanfeipeng.com
2.Nginx实现负载均衡
什么是负载均衡
部署多个服务器集群,把流量分发的集群中的不同的机器上,这个就是负载均衡技术实现要做的事;
我们实现下通过Nginx实现负载均衡,来把客户端的请求分发达到两个tomcat;
准备2个tomcat
启动tomcat
运行容器
宿主机里home目录下新建tomcat1和tomcat2目录,复制容器里conf,webapps到宿主机
docker cp 容器id:/usr/local/tomcat/conf /home/tomcat/
docker cp 容器id:/usr/local/tomcat/webapps /home/tomcat/
修改两个tomcat的配置,端口分别是8080和9090(server.xml里面)
以及两个tomcat默认jsp内容改成8080和9090(ROOT下面的index,jsp)
启动两个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
运行没问题就OK;
配置nginx.conf;
在http模块下配置下加
upstream www.jiangnanfeipeng.com{
server 172.17.0.2:8080 weight=5;
server 172.17.0.3