使用反向代理,能夠對用戶隱藏服務器的信息,同時代理將用戶的請求經過負載均衡算法分發到不一樣的上游服務器處理,不只加強了服務的處理性能,也保證了服務的高可用性,在上游的某一臺服務器掛掉時,服務仍然能夠經過其餘的上游服務器對外服務。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
緩存到咱們指定的路徑下了