欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

背景

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

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

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

目標(biāo)

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

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

思路

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

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

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

實現(xiàn)步驟

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

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

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

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

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

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

sudo docker stop sign 
sudo service docker stop 

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

③運行 docker inspect 【CONTAINER ID】 | grep Id 命令。

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

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

進入id對應(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端口映射為主機的80端口;修改之后,ServiceDocker內(nèi)部的80端口映射為主機的89端口。

稍加說明,有文章(參考資料中的2、3)提到還需要修改config.v2.json,親測不需要。這個文件在啟動ServiceDocker時會自動修改。

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

sudo service docker start 
sudo docker start sign 

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

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

初步估計docker中的服務(wù)器沒有啟動,運行命令:

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

運行stop的時候,發(fā)現(xiàn)apache 沒有啟動,可能是修改了80端口的緣故。

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

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

順便,運行 crontab -l 查看ServiceDocker中的定時任務(wù)是否啟動,如果沒啟動,運行 service cron start 啟動定時任務(wù)。

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

2. 配置NginxDocker反向代理。

①下載nginx,并運行它。

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/; 
 } 
} 

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

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

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

③停止mynginx,然后重啟它。

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

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

至此,配置完成。

驗證

瀏覽器中分別打開

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

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

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

famend.cn:80
famend.cn:89

總結(jié)

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

相關(guān)文章

  • Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機解決辦法詳解

    Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機解決辦法詳解

    這篇文章主要介紹了Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機解決辦法詳解,反向代理保證系統(tǒng)安全,不暴露服務(wù)器IP,利用nginx服務(wù)器,利用內(nèi)網(wǎng)ip進行訪問,避免出現(xiàn)攻擊服務(wù)器的情況,需要的朋友可以參考下
    2024-01-01
  • windows下快速安裝nginx并配置開機自啟動的方法

    windows下快速安裝nginx并配置開機自啟動的方法

    這篇文章主要介紹了windows下快速安裝nginx 并配置開機自啟動的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • Nginx的location的常見規(guī)則優(yōu)先級問題

    Nginx的location的常見規(guī)則優(yōu)先級問題

    Nginx是反向代理和負(fù)載均衡的首選工具,nginx的location配置有許多細節(jié)內(nèi)容在網(wǎng)上不容易找到資料,或者解釋不清。本文對Nginx location規(guī)則優(yōu)先級介紹,需要的朋友參考下吧
    2021-08-08
  • Nginx?Tomcat負(fù)載均衡動靜分離原理解析

    Nginx?Tomcat負(fù)載均衡動靜分離原理解析

    這篇文章主要為大家介紹了Nginx?Tomcat負(fù)載均衡動靜分離原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Windows下Nginx的啟動停止等基本操作命令詳解

    Windows下Nginx的啟動停止等基本操作命令詳解

    在Windows下使用Nginx,我們需要掌握一些基本的操作命令,今天為大家分享幾個Windows下操作Nginx的基本命令
    2018-10-10
  • nginx并發(fā)數(shù)限制limit_conn基本語法

    nginx并發(fā)數(shù)限制limit_conn基本語法

    這篇文章主要為大家介紹了nginx并發(fā)數(shù)限制limit_conn基本語法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 詳解Nginx啟動失敗的幾種錯誤處理

    詳解Nginx啟動失敗的幾種錯誤處理

    這篇文章主要介紹了詳解Nginx啟動失敗的幾種錯誤處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Nginx 如何限制訪問頻率,下載速率和并發(fā)連接數(shù)的方法

    Nginx 如何限制訪問頻率,下載速率和并發(fā)連接數(shù)的方法

    這篇文章主要介紹了Nginx 如何限制訪問頻率,下載速率和并發(fā)連接數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 利用Nginx反向代理功能解決WEB網(wǎng)站80端口被封的解決方法

    利用Nginx反向代理功能解決WEB網(wǎng)站80端口被封的解決方法

    大陸的網(wǎng)絡(luò)環(huán)境,都在天朝神獸的制度下讓我等小P民悲劇一片;動不動就拔網(wǎng)線、封機房;現(xiàn)在更厲害的一招,從網(wǎng)關(guān)封殺你的80端口,一旦被封,網(wǎng)站域名就無法訪問
    2012-08-08
  • Nginx使用mirror指令實現(xiàn)接口復(fù)制

    Nginx使用mirror指令實現(xiàn)接口復(fù)制

    Nginx中使用mirro指令可以方便地實現(xiàn)接口請求的復(fù)制,這個功能非常適合用于流量監(jiān)控、數(shù)據(jù)收集或負(fù)載均衡,下面我們就來看看具體的用法吧
    2024-10-10

最新評論