最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Nginx實(shí)現(xiàn)服務(wù)器中多容器共存的方法

 更新時(shí)間:2018年10月08日 10:26:23   投稿:mrr  
這篇文章主要介紹了使用Nginx實(shí)現(xiàn)服務(wù)器中多容器共存的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

背景

有一臺(tái)騰訊的Linux云主機(jī),在服務(wù)器上部署了一個(gè)docker(稱為ServiceDocker,名稱為sign,下同),ServiceDocker內(nèi)部使用了80、443、3306端口,分別映射到宿主機(jī)(云主機(jī))的相同端口(即80、443、3306)。

ServiceDocker中安裝了XAMPP,在此基礎(chǔ)上部署了掃碼簽到小程序的服務(wù)器。ServiceDocker的80和443端口分別提供http和https服務(wù),3306為MySQL數(shù)據(jù)庫(kù)的端口。

ServiceDocker綁定了域名sign.famend.cn。

目標(biāo)

云主機(jī)中的一個(gè)ServiceDocker占用了80、443端口,如果想在主機(jī)中再部署一臺(tái)服務(wù)器對(duì)外服務(wù),就不能使用80和443端口了。

我們的目標(biāo)是在主機(jī)中可以部署多個(gè)ServiceDocker,每個(gè)ServiceDocker綁定各自的域名,對(duì)外提供服務(wù),保證80和443端口可用。

思路

修改ServiceDocker的端口映射,把ServiceDocker端口80、443分別映射到主機(jī)的89、449端口,這樣主機(jī)的80、443端口釋放出來(lái)了。

釋放出來(lái)的80和443端口供Nginx使用。安裝帶Nginx的docker(稱為NginxDocker,名稱為mynginx,下同)。NginxDocker內(nèi)部使用端口80、443,分別映射到主機(jī)的80和443端口。

NginxDocker用來(lái)做反向代理。當(dāng)有訪問(wèn)請(qǐng)求時(shí),讀取Nginx配置后,不同的URL定向到各自對(duì)應(yīng)的Docker。例如:訪問(wèn)http://sign.famend.cn:80,則自動(dòng)映射到http://sign.famend.cn:89。

實(shí)現(xiàn)步驟

1. 修改ServiceDocker的端口映射,釋放80和443端口。

Docker沒(méi)有提供命令修改端口,從網(wǎng)上我找到了2種方法。

方法1:先停止容器,再將容器打包成鏡像,接著運(yùn)行新的鏡像。在運(yùn)行新的鏡像時(shí)指定新的端口。使用的命令如下:

#先停止容器 
docker stop containerA 
#將容器commit成為一個(gè)鏡像 
docker commit containerA newImageB 
#運(yùn)行容器 
docker run -p 8080:8080 -p 8081:8081 -v /home/data/:/home/data/ -dt newImageB 

方法2:先停止容器,接著停止容器服務(wù),然后修改容器配置文件,最后啟動(dòng)容器服務(wù)、啟動(dòng)容器。步驟如下:

①停止ServiceDocker(ServiceDocker的名稱為sign),停止docker服務(wù)。

sudo docker stop sign 
sudo service docker stop 

②使用 docker ps -a 命令找到要修改容器的 CONTAINER ID。

③運(yùn)行 docker inspect 【CONTAINER ID】 | grep Id 命令。

④執(zhí)行 cd /var/lib/docker/containers 命令令進(jìn)入找到與 Id 相同的目錄。

在執(zhí)行cd 命令時(shí)如果提示permission denied,可以先執(zhí)行 sudo -s。

進(jìn)入id對(duì)應(yīng)的目錄后,打開文件hostconfig.json。

找到80端口的映射,如下:

"80/tcp": [ 
{ 
"HostIp": "0.0.0.0", 
"HostPort": "80" 
}] 
 
把 "HostPort": "80" 修改成 "HostPort": "89" , 如下 
"80/tcp": [ 
{ 
"HostIp": "0.0.0.0", 
"HostPort": "89" 
}]

修改之前,ServiceDocker內(nèi)部的80端口映射為主機(jī)的80端口;修改之后,ServiceDocker內(nèi)部的80端口映射為主機(jī)的89端口。

稍加說(shuō)明,有文章(參考資料中的2、3)提到還需要修改config.v2.json,親測(cè)不需要。這個(gè)文件在啟動(dòng)ServiceDocker時(shí)會(huì)自動(dòng)修改。

⑤啟動(dòng)docker服務(wù),然后啟動(dòng)ServiceDocker(名稱為sign)。

sudo service docker start 
sudo docker start sign 

方法(1)和方法(2)都可以,我選用了方法(2)。

在執(zhí)行完方法(2)之后,打開瀏覽器驗(yàn)證,提示“網(wǎng)站無(wú)法訪問(wèn)”。

初步估計(jì)docker中的服務(wù)器沒(méi)有啟動(dòng),運(yùn)行命令:

sudo /opt/lampp/lampp stop 
sudo /opt/lampp/lampp start 

運(yùn)行stop的時(shí)候,發(fā)現(xiàn)apache 沒(méi)有啟動(dòng),可能是修改了80端口的緣故。

在執(zhí)行start之后,打開瀏覽器驗(yàn)證http://sign.famend.cn:89https://sign.famend.cn:449,成功訪問(wèn)。

修改Docker端口的方法并不復(fù)雜,如果docker以后的版本能夠提供相應(yīng)命令,相信會(huì)方便很多。

順便,運(yùn)行 crontab -l 查看ServiceDocker中的定時(shí)任務(wù)是否啟動(dòng),如果沒(méi)啟動(dòng),運(yùn)行 service cron start 啟動(dòng)定時(shí)任務(wù)。

下一步,配置NginxDocker反向代理,讓http://sign.famend.cn:80https://sign.famend.cn:443也能成功訪問(wèn)。

2. 配置NginxDocker反向代理。

①下載nginx,并運(yùn)行它。

docker container run \ 
 -d \ 
 -p 80:80 \ 
 -p 443:443 \ 
 --rm \ 
 --name mynginx \ 
 nginx 

②配置nginx的配置文件。

mkdir nginx-files 
docker container cp mynginx:/etc/nginx . 
mv nginx conf 
vi conf/nginx.conf 

在nginx.conf中,添加如下反向代理信息。

server{ 
 listen     443 ssl; 
 server_name   sign.famend.cn; 
 ssl_certificate /etc/nginx/ssl/sign.famend.cn/1_sign.famend.cn_bundle.crt; 
 ssl_certificate_key /etc/nginx/ssl/sign.famend.cn/2_sign.famend.cn.key; 
 
 location / { 
  proxy_set_header HOST $host; 
  proxy_set_header X-Real-IP $remote_addr; 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  proxy_set_header X-Forwarded-Proto $scheme; 
  proxy_pass http://sign.famend.cn:89/; 
 } 
} 
 
server{ 
 listen     80; 
 server_name   famend.cn sign.famend.cn; 
 location / { 
  proxy_set_header HOST $host; 
  proxy_set_header X-Real-IP $remote_addr:89; 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  proxy_set_header X-Forwarded-Proto $scheme; 
  proxy_pass http://sign.famend.cn:89/; 
 } 
} 

對(duì)于443端口,需要使用ssl_certificate和ssl_certificate_key。在ServiceDocker中證書使用的LetsEncrypt的SSL證書,每90天更新一次。

SSL證書的來(lái)源:一種方法,可以讓它們共享LetsEncrypt的SSL證書。除此之外,在騰訊注冊(cè)的域名,騰訊免費(fèi)提供SSL證書,有效期為1年。

為了簡(jiǎn)便,我直接使用了騰訊的SSL證書,當(dāng)然,一年之內(nèi),必須在過(guò)期之前更新證書。

③停止mynginx,然后重啟它。

docker container run \ 
 --name mynginx \ 
 --volume "$PWD/conf":/etc/nginx \ 
 -p 80:80 \ 
 -p 443:443 \ 
 -d \ 
 nginx 

這次,去掉 --rm 參數(shù),以便停止運(yùn)行的時(shí)候保留容器。

至此,配置完成。

驗(yàn)證

瀏覽器中分別打開

sign.famend.cn:80 
sign.famend.cn:89 
sign.famend.cn:449 
sign.famend.cn:443 

都能正常訪問(wèn)。當(dāng)然,打開449和443時(shí)候,可以發(fā)現(xiàn)兩個(gè)URL使用的證書不一樣。449是LetsEncrypt提供的,有效期90天;443來(lái)自騰訊(頒發(fā)機(jī)構(gòu)TrustAsia),有效期1年。

當(dāng)然,ServiceDocker中的另外一個(gè)網(wǎng)站famend.cn,也可以訪問(wèn):

famend.cn:80
famend.cn:89

總結(jié)

以上所述是小編給大家介紹的使用Nginx實(shí)現(xiàn)服務(wù)器中多容器共存的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • nginx配置https://localhost/index報(bào)404

    nginx配置https://localhost/index報(bào)404

    本文主要介紹了Nginx配置導(dǎo)致頁(yè)面刷新時(shí)報(bào)404錯(cuò)誤的問(wèn)題,主要因?yàn)殪o態(tài)文件路徑配置錯(cuò)誤、前端路由問(wèn)題和反向代理配置錯(cuò)誤這幾種錯(cuò)誤,下面就來(lái)介紹一下解決方法
    2024-12-12
  • Nginx配置SSL和WSS步驟介紹

    Nginx配置SSL和WSS步驟介紹

    大家好,本篇文章主要講的是Nginx配置SSL和WSS步驟介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Nginx + lua 實(shí)現(xiàn)WAF的詳細(xì)過(guò)程

    Nginx + lua 實(shí)現(xiàn)WAF的詳細(xì)過(guò)程

    這篇文章主要介紹了Nginx + lua 實(shí)現(xiàn)WAF的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Nginx配置檢測(cè)服務(wù)狀態(tài)的實(shí)現(xiàn)方法

    Nginx配置檢測(cè)服務(wù)狀態(tài)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Nginx配置檢測(cè)服務(wù)狀態(tài)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • nginx,apache的alias和認(rèn)證功能

    nginx,apache的alias和認(rèn)證功能

    從年前電腦換成linux系統(tǒng)后就沒(méi)寫東西,最近有點(diǎn)懶,在這里講述下nginx alias 功能,不是server alias
    2012-11-11
  • 為Nginx自定義404,502錯(cuò)誤頁(yè)面的方法

    為Nginx自定義404,502錯(cuò)誤頁(yè)面的方法

    為Nginx自定義404,502錯(cuò)誤頁(yè)面的方法,需要的朋友可以參考下。
    2010-12-12
  • Nginx rewrite跳轉(zhuǎn)應(yīng)用場(chǎng)景詳解

    Nginx rewrite跳轉(zhuǎn)應(yīng)用場(chǎng)景詳解

    這篇文章主要介紹了Nginx rewrite跳轉(zhuǎn)應(yīng)用場(chǎng)景詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • centos環(huán)境下nginx高可用集群的搭建指南

    centos環(huán)境下nginx高可用集群的搭建指南

    為了防止Nginx單點(diǎn)故障造成服務(wù)器癱瘓,本文介紹了Nginx實(shí)現(xiàn)高可用集群構(gòu)建,下面這篇文章主要給大家介紹了關(guān)于centos環(huán)境下nginx高可用集群的搭建指南,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器

    利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器

    本文主要介紹了利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • nginx?405?not?allowed問(wèn)題三種解決方法

    nginx?405?not?allowed問(wèn)題三種解決方法

    這篇文章主要給大家介紹了關(guān)于nginx?405?not?allowed問(wèn)題三種解決方法的相關(guān)資料,當(dāng)您遇到"405 Not Allowed"錯(cuò)誤時(shí),通常表示服務(wù)器不允許您使用所請(qǐng)求的HTTP方法,以下是一些可能的解決方法,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

科技| 镇巴县| 丰原市| 西丰县| 辽宁省| 牡丹江市| 临泽县| 武安市| 汾西县| 剑河县| 即墨市| 朝阳县| 佛山市| 清徐县| 依安县| 贵阳市| 博白县| 平乡县| 南安市| 岳普湖县| 丰都县| 玉龙| 南宁市| 新兴县| 甘洛县| 荣成市| 濮阳市| 柘荣县| 龙南县| 桐乡市| 阿克苏市| 内江市| 永城市| 濉溪县| 宾川县| 保定市| 临江市| 阿拉尔市| 定边县| 县级市| 报价|