摘要:架構(gòu)服務(wù)器中已存在的是鏡像,可以運(yùn)行環(huán)境以及其他的,包含了等。添加容器新添加一個(gè)容器用來(lái)做反向代理。推薦使用版本查看鏡像,生成新的容器,。參考資料轉(zhuǎn)載記一次用運(yùn)行容器做域名反向代理時(shí)踩的坑如何從容器內(nèi)部獲取主機(jī)。
導(dǎo)語(yǔ)
之前介紹 docker 的時(shí)候說(shuō)過(guò)它的優(yōu)勢(shì)之一,就是可以在同一服務(wù)器中搭建多個(gè)環(huán)境,互相隔離。昨天就實(shí)際操作下,萬(wàn)萬(wàn)沒(méi)想到如此多的坑,比之前從零開(kāi)始搭建服務(wù)器都費(fèi)時(shí)間。變換了好幾種方案,最終還是解決了,中間的心酸就忽略吧,直接說(shuō)操作方法。
架構(gòu)服務(wù)器中已存在的是 laradock 鏡像,可以運(yùn)行 laravel 環(huán)境以及其他的 PHP,包含了 nginx、mysql、redis 等。
我的想法是再添加一個(gè) nginx 容器,用來(lái)做反向代理。根據(jù)子域名進(jìn)行分發(fā),可以分發(fā)給 laradock,也可以給其他任何容器(包括 wordpress、python、java)等等
要修改的只有一個(gè)地方,就是 nginx 監(jiān)聽(tīng)的端口。
進(jìn)入到 laradock 目錄中
修改 .env 文件,修改 NGINX_HOST_HTTP_PORT 值由 80 為 8000
停止 nginx, docker-compose stop nginx
重裝 nginx,docker-compose build nginx
啟動(dòng) docker-compose up -d nginx
這個(gè)時(shí)候在瀏覽器中是不能訪問(wèn)成功的,因?yàn)?nginx 已經(jīng)不再監(jiān)聽(tīng) 80 端口。
添加 nginx 容器新添加一個(gè) nginx 容器用來(lái)做反向代理。在安裝 laradock 的時(shí)候,已經(jīng)有了 nginx:alpine 的鏡像,可以直接生成容器。當(dāng)然你也可以重新 pull 一個(gè)新的鏡像。(推薦使用 alpine版本)
查看 nginx 鏡像 ID,docker iamges
生成新的 ngixn 容器, docker run --name proxy_nginx -p 80:80 -d [nginx image id]。也可以添加 -v 參數(shù)來(lái)映射配置文件,我的環(huán)境較少變動(dòng)就不需要了
此時(shí)在瀏覽器中訪問(wèn),應(yīng)該是 nginx 的默認(rèn)頁(yè)面,說(shuō)明啟動(dòng)成功
進(jìn)入到生成的容器中 docker exec -it proxy_nginx sh
安裝 vim,apk add vim
查看宿主機(jī) ip,/sbin/ip route|awk "/default/ { print $3 }"
在 /etc/nginx/conf.d/ 目錄下添加新配置文件 laradock.conf,內(nèi)容如下
server { listen 80; server_name you_site; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://[宿主機(jī)IP]:8000; } }
退出容器,然后重啟 docker restart proxy_nginx
打開(kāi) 8000 端口,參考這里
結(jié)語(yǔ)這個(gè)時(shí)候訪問(wèn)的話,就可以代理到 laradock 中的 nginx 了。后續(xù)想要新增其他的容器,只要在 proxy_nginx 中添加新的代理規(guī)則就可以了。
參考資料:【轉(zhuǎn)載】記一次用 Docker 運(yùn)行 Nginx 容器做域名反向代理時(shí)踩的坑、如何從容器內(nèi)部獲取主機(jī)IP。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27808.html
摘要:架構(gòu)服務(wù)器中已存在的是鏡像,可以運(yùn)行環(huán)境以及其他的,包含了等。添加容器新添加一個(gè)容器用來(lái)做反向代理。推薦使用版本查看鏡像,生成新的容器,。參考資料轉(zhuǎn)載記一次用運(yùn)行容器做域名反向代理時(shí)踩的坑如何從容器內(nèi)部獲取主機(jī)。 導(dǎo)語(yǔ) 之前介紹 docker 的時(shí)候說(shuō)過(guò)它的優(yōu)勢(shì)之一,就是可以在同一服務(wù)器中搭建多個(gè)環(huán)境,互相隔離。昨天就實(shí)際操作下,萬(wàn)萬(wàn)沒(méi)想到如此多的坑,比之前從零開(kāi)始搭建服務(wù)器都費(fèi)時(shí)間。...
摘要:一個(gè)反向代理可以幫助處理這些問(wèn)題,同時(shí)通過(guò)減輕零停機(jī)部署的困難來(lái)提升可用性。生成反向代理配置文件當(dāng)一個(gè)容器被啟動(dòng)和停止的時(shí)候,設(shè)置一個(gè)反向代理配置可能是復(fù)雜的。這些可以被用于自動(dòng)地生成一個(gè)反向代理配置。 自動(dòng)化 Nginx 反向代理 Docker 標(biāo)簽(空格分隔): Docker Nginx Automated 本文作者是 jwilder,原文地址是 Automated N...
摘要:一個(gè)反向代理可以幫助處理這些問(wèn)題,同時(shí)通過(guò)減輕零停機(jī)部署的困難來(lái)提升可用性。生成反向代理配置文件當(dāng)一個(gè)容器被啟動(dòng)和停止的時(shí)候,設(shè)置一個(gè)反向代理配置可能是復(fù)雜的。這些可以被用于自動(dòng)地生成一個(gè)反向代理配置。 自動(dòng)化 Nginx 反向代理 Docker 標(biāo)簽(空格分隔): Docker Nginx Automated 本文作者是 jwilder,原文地址是 Automated N...
摘要:以及自動(dòng)剔除因故障負(fù)載均衡列表中宕機(jī)的服務(wù)器。這兩天折騰了一下的安裝配置,并通過(guò)模擬出在多服務(wù)器提供服務(wù)的狀態(tài)下的負(fù)載均衡。修改好配置文件后,使用重新載入配置。 原文發(fā)表于我的博客,轉(zhuǎn)載請(qǐng)注明出處 一直聽(tīng)說(shuō)Nginx的強(qiáng)大,它不僅可以作為Web服務(wù)器,按照調(diào)度規(guī)則實(shí)現(xiàn)動(dòng)態(tài)、靜態(tài)頁(yè)面的分離;還可以作為反向代理服務(wù)器,構(gòu)建服務(wù)集群,按輪詢、權(quán)重等多種方式對(duì)后端服務(wù)器做負(fù)載均衡。以及自動(dòng)剔...
閱讀 1602·2021-09-30 09:47
閱讀 3598·2021-09-22 15:05
閱讀 2840·2021-08-30 09:44
閱讀 3624·2019-08-30 15:55
閱讀 1373·2019-08-30 13:08
閱讀 1330·2019-08-29 16:40
閱讀 553·2019-08-29 12:45
閱讀 1390·2019-08-29 11:25