使用Docker實(shí)現(xiàn)Nginx反向代理
本機(jī)是在CentOS7上面進(jìn)行操作的
1.首先安裝好Dokcer,這里不再贅述2.Docker安裝Nginx容器2.1首先需要?jiǎng)?chuàng)建Nginx配置文件,之后完成掛載啟動(dòng)前需要先創(chuàng)建Nginx外部掛載的配置文件( /home/nginx/conf/nginx.conf)之所以要先創(chuàng)建 , 是因?yàn)镹ginx本身容器只存在/etc/nginx 目錄 , 本身就不創(chuàng)建 nginx.conf 文件當(dāng)服務(wù)器和容器都不存在 nginx.conf 文件時(shí), 執(zhí)行啟動(dòng)命令的時(shí)候 docker會(huì)將nginx.conf 作為目錄創(chuàng)建 , 這并不是我們想要的結(jié)果 。
# 創(chuàng)建掛載目錄mkdir -p /home/nginx/confmkdir -p /home/nginx/logmkdir -p /home/nginx/html# 生成容器docker run --name nginx -p 9001:80 -d nginx然后將nginx中的配置文件復(fù)制到外部環(huán)境
# 將容器nginx.conf文件復(fù)制到宿主機(jī)docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf# 將容器conf.d文件夾下內(nèi)容復(fù)制到宿主機(jī)docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d# 將容器中的html文件夾復(fù)制到宿主機(jī)docker cp nginx:/usr/share/nginx/html /home/nginx/# 刪除正在運(yùn)行的nginx容器docker rm -f nginx2.2重新啟動(dòng)nginx容器docker run -p 9002:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest命令介紹:
–name nginx 啟動(dòng)容器的名字-d 后臺(tái)運(yùn)行-p 9002:80 將容器的 9002(后面那個(gè)) 端口映射到主機(jī)的 80(前面那個(gè)) 端口-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 掛載nginx.conf配置文件-v /home/nginx/conf/conf.d:/etc/nginx/conf.d 掛載nginx配置文件-v /home/nginx/log:/var/log/nginx 掛載nginx日志文件-v /home/nginx/html:/usr/share/nginx/html 掛載nginx內(nèi)容nginx:latest 本地運(yùn)行的版本\ shell 命令換行2.3瀏覽器輸入http:ip:9002訪問(wèn),發(fā)現(xiàn)是nginx首頁(yè),安裝成功3.安裝Tomcat鏡像下載tomcat8
docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8然后進(jìn)行訪問(wèn),如果訪問(wèn)不到,原因是
新版tomcat的/bin/bash目錄下有webapps和webapps.dist兩個(gè)目錄webapps里面沒(méi)有任何東西 total為0,實(shí)際有東西的是webapps.dist目錄下rm -rf webapps #刪除webapps文件夾mv webapps.dist webapps #改名為webapps
重啟tomcat進(jìn)行訪問(wèn),發(fā)現(xiàn)可以訪問(wèn)到了
4.配置Nginx文件效果:訪問(wèn)http://ip:9002/可以看到tomcat的首頁(yè)
原效果:訪問(wèn)http://ip:9002/看到的是nginx的首頁(yè)
cd /home/nginx/conf
在http下面添加如下代碼:
server{?????? #監(jiān)聽(tīng)的端口 本例中9002監(jiān)聽(tīng)nginx80端口,所以這里寫(xiě)80?????? listen 80;?????? #字符格式?????? charset utf-8;?????? #當(dāng)前的服務(wù)器ip?????? server_name ip;?????? location / {????????? #要代理去哪個(gè)服務(wù)器的ip以及端口????????? proxy_pass http://ip:8080;????????? #被代理服務(wù)器返回默認(rèn)的響應(yīng)頭中的location頭域以及refresh頭域數(shù)值????????? proxy_redirect default;?????? }}重啟nginx
docker restart nginx訪問(wèn)http://ip:9002/可以看到tomcat的首頁(yè)
5.拓展要達(dá)到的效果:
1.再創(chuàng)建兩個(gè)tomcat容器,和上面一樣進(jìn)行配置,一個(gè)為8081端口,一個(gè)為8082端口
2.在這兩個(gè)tomcat里創(chuàng)建不同的目錄,里面放一個(gè)html文件
3.配置nginx
4.訪問(wèn)http://ip/edu/a.html訪問(wèn)到的是8081的html
5.訪問(wèn)http://ip/vod/a.html訪問(wèn)到的是8082的html
#創(chuàng)建好兩個(gè)tomcat容器后,進(jìn)入容器docker exec -it 容器ID /bin/bashcd webappsmkdir edu #8081端口的容器創(chuàng)建這個(gè),8082的創(chuàng)建名為vod的目錄vim a.html#如果沒(méi)有vim則安裝一個(gè),其他方法也行,搞個(gè)html進(jìn)去就行apt-get updateapt-get install vima.html 里簡(jiǎn)單寫(xiě)個(gè)<h1>端口號(hào)</h1>就行,只是看效果
重啟這幾個(gè)tomcat容器,訪問(wèn)發(fā)現(xiàn)成功
最后配置nginx配置文件
http下面添加:
server{ #監(jiān)聽(tīng)的端口 listen 9001; #字符格式 charset utf-8; #當(dāng)前的服務(wù)器ip server_name ip; location ~ /edu/ { #要代理去哪個(gè)服務(wù)器的ip以及端口 proxy_pass http://ip:8081; #被代理服務(wù)器返回默認(rèn)的響應(yīng)頭中的location頭域以及refresh頭域數(shù)值 proxy_redirect default; } location ~ /vod/ { #要代理去哪個(gè)服務(wù)器的ip以及端口 proxy_pass http://ip:8082; #被代理服務(wù)器返回默認(rèn)的響應(yīng)頭中的location頭域以及refresh頭域數(shù)值 proxy_redirect default; }}重啟nginx,訪問(wèn),發(fā)現(xiàn)成功。

ps 這個(gè)8001是我寫(xiě)錯(cuò)了,看效果就行

到此這篇關(guān)于使用Docker實(shí)現(xiàn)Nginx反向代理的文章就介紹到這了,更多相關(guān)Docker Nginx反向代理內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. win10使用清華源快速安裝pytorch-GPU版(推薦)2. Linux系統(tǒng)中kill命令殺死進(jìn)程常用小技巧分享3. shell腳本實(shí)戰(zhàn)之部署nginx腳本實(shí)例4. nginx緩存以及清除緩存的使用5. win11下FTP服務(wù)器搭建圖文教程6. Windows Server之使用Bitlocker驅(qū)動(dòng)器加密實(shí)現(xiàn)保護(hù)磁盤(pán)數(shù)據(jù)7. DNS服務(wù)器管理與配置技巧淺談8. linux free命令以及系統(tǒng)內(nèi)存占用過(guò)高的處理方式9. linux下如何將無(wú)線網(wǎng)卡工作模式切換為監(jiān)聽(tīng)模式10. Windows Server2012 R2 FTP服務(wù)器配置圖文教程

網(wǎng)公網(wǎng)安備