Nginx的这些妙用,你肯定有不知道的!
本文將從反向代理、文件壓縮、地址重寫(xiě)三方面來(lái)講解Nginx在Docker環(huán)境下的使用技巧!
? ?
在Docker環(huán)境下的安裝
下載nginx的docker鏡像
docker pull nginx:1.10從容器中拷貝nginx配置
先運(yùn)行一次容器(為了拷貝配置文件):
將容器內(nèi)的配置文件拷貝到指定目錄:
修改文件名稱(chēng):
終止并刪除容器:
使用docker命令啟動(dòng)
docker run -p 80:80 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/conf:/etc/nginx \ -d nginx:1.10??
反向代理
反向代理就是當(dāng)請(qǐng)求訪(fǎng)問(wèn)你的代理服務(wù)器時(shí),代理服務(wù)器會(huì)對(duì)你的請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),可以轉(zhuǎn)發(fā)到靜態(tài)的資源路徑上去,也可以轉(zhuǎn)發(fā)到動(dòng)態(tài)的服務(wù)接口上去。下面我們以對(duì)域名進(jìn)行代理為例,來(lái)講講如何進(jìn)行靜態(tài)代理和動(dòng)態(tài)代理。
靜態(tài)代理
靜態(tài)代理就是將請(qǐng)求代理到不同的靜態(tài)資源路徑上去,這里我們將對(duì)docs.macrozheng.com的請(qǐng)求代理到我的文檔項(xiàng)目中,對(duì)mall.macrozheng.com的請(qǐng)求代理到mall的前端項(xiàng)目中。
首先我們修改下本機(jī)的host文件:
然后將我們的文檔項(xiàng)目和mall前端項(xiàng)目上傳到nginx的html目錄中去,并進(jìn)行解壓操作:
在/mydata/nginx/conf/conf.d文件夾中添加配置文件docs.conf對(duì)文檔項(xiàng)目進(jìn)行反向代理:
在/mydata/nginx/conf/conf.d文件夾中添加配置文件mall.conf對(duì)mall的前端項(xiàng)目進(jìn)行反向代理:
重啟nginx服務(wù):
通過(guò)docs.macrozheng.com即可訪(fǎng)問(wèn)到我們的文檔項(xiàng)目了:
通過(guò)mall.macrozheng.com即可訪(fǎng)問(wèn)到mall的前端項(xiàng)目了:
動(dòng)態(tài)代理
動(dòng)態(tài)代理就是把代理服務(wù)器的請(qǐng)求轉(zhuǎn)發(fā)到另一個(gè)服務(wù)上去,這里我們將對(duì)api.macrozheng.com的請(qǐng)求代理到mall-admin的后臺(tái)服務(wù)上去。
首先我們修改下本機(jī)的host文件,添加如下規(guī)則:
在/mydata/nginx/conf/conf.d文件夾中添加配置文件api.conf對(duì)將請(qǐng)求代理到遠(yuǎn)程的mall-admin服務(wù)上去:
重啟動(dòng)nginx服務(wù)后,通過(guò)api.macrozheng.com/swagger-ui.html即可訪(fǎng)問(wèn)到mall-admin的API文檔頁(yè)面了:
??
文件壓縮
如果我們租用了一個(gè)帶寬很低的服務(wù)器,網(wǎng)站訪(fǎng)問(wèn)速度會(huì)很慢,這時(shí)我們可以通過(guò)讓nginx開(kāi)啟GZIP壓縮來(lái)提高網(wǎng)站的訪(fǎng)問(wèn)速度。這里我們以mall的前端項(xiàng)目為例來(lái)演示下它的提速效果。
首先我們對(duì)nginx進(jìn)行限速操作,限制每個(gè)連接的訪(fǎng)問(wèn)速度為128K來(lái)建立一個(gè)比較慢的訪(fǎng)問(wèn)場(chǎng)景;
修改mall.conf配置文件,進(jìn)行限速操作:
對(duì)mall的前端項(xiàng)目mall.macrozheng.com進(jìn)行訪(fǎng)問(wèn),我們可以發(fā)現(xiàn)網(wǎng)站中有個(gè)js文件比較大,需要加載12s:
nginx返回請(qǐng)求頭信息如下:
修改/mydata/nginx/conf目錄下的nginx.conf配置文件,開(kāi)啟GZIP壓縮;
再次對(duì)mall的前端項(xiàng)目mall.macrozheng.com進(jìn)行訪(fǎng)問(wèn),我們可以發(fā)現(xiàn)js文件已經(jīng)被壓縮,加載時(shí)間縮短到3.88s,提速3倍左右:
nginx返回請(qǐng)求頭中添加了Content-Encoding: gzip的信息:
?
地址重寫(xiě)
有的時(shí)候我們的網(wǎng)站更換了域名,但還有用戶(hù)在使用老的域名訪(fǎng)問(wèn),這時(shí)可以通過(guò)nginx的地址重寫(xiě)來(lái)讓用戶(hù)跳轉(zhuǎn)到新的域名進(jìn)行訪(fǎng)問(wèn)。
比如說(shuō)原來(lái)我們用的docs.macrozheng.com這個(gè)域名不用了,現(xiàn)在改成www.macrozheng.com了來(lái)訪(fǎng)問(wèn)文檔項(xiàng)目了;
修改docs.conf配置文件,將地址帶參數(shù)重寫(xiě)到新地址:
此時(shí)訪(fǎng)問(wèn)舊域名docs.macrozheng.com會(huì)直接跳轉(zhuǎn)到www.macrozheng.com去。
有道無(wú)術(shù),術(shù)可成;有術(shù)無(wú)道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號(hào)
好文章,我在看??
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的Nginx的这些妙用,你肯定有不知道的!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Golang之envconfig的使用
- 下一篇: Golang之funcval结构体