使用反向代理,能够对用户隐藏服务器的信息,同时代理将用户的请求经过负载均衡算法分发到不一样的上游服务器处理,不只加强了服务的处理性能,也保证了服务的高可用性,在上游的某一台服务器挂掉时,服务仍然能够经过其余的上游服务器对外服务。css
这里简单演示一下反向代理,因此只部署了一台上游服务器,这里修改一下现有的nginx
监听的套接字html
这里nginx
监听docker
容器内的8080
端口,在我本机中的8080
端口映射容器的80
端口nginx
nginx
后咱们能够看到本机已经没法访问
nginx
。
在容器中从新开启一个nginx
服务器,并修改这个新的服务器配置算法
proxy_set_header
。
此时再在本机访问8080端口(本机8080=>容器中代理服务器80=>容器中上游服务器8080)能够看到能够访问以前的页面了。docker
并且咱们能够看到在响应中加上了代理的信息缓存
在咱们请求的页面中,有一部份内容是一段时间内不变的,好比说js
css
静态html
文档等,这类文件咱们就能够将其缓存在代理服务器上,从而减轻上游服务器的压力。 那么如何设置呢?服务器
首先咱们须要指定代理服务器缓存存放的位置:app
proxy_cache_path
指定了缓存存放的文件的位置以及相关配置负载均衡
Sets the path and other parameters of a cache. Cache data are stored in files. The file name in a cache is a result of applying the MD5 function to the cache key. The levels parameter defines hierarchy levels of a cache: from 1 to 3, each level accepts values 1 or 2. For example, in the following configuration性能
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m; file names in a cache will look like this:
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
更多配置的详细信息能够查看nginx
的官方文档
重启代理服务器,并访问一次首页,使代理服务器缓存下页面,而后咱们断掉上游服务器
同时咱们去看咱们指定的缓存路径下的文件,发现nginx
将html
缓存到咱们指定的路径下了