多級nginx的配置及docker啟動

2021-10-19 12:23:54 字數 2601 閱讀 1547

因為自己的伺服器跑了部落格、api介面等服務,如:

部落格:blog.luvying.com

api介面:api.luvying.com

而像api介面時不時會進行修改,又不希望因為修改api介面而導致部落格一時訪問不了,於是就有了試試能不能開多個nginx來配置多級nginx的想法

大概的思路就是這樣,首先開啟乙個root-nginx,作為伺服器的乙個大閘道器,來將請求**給各個子nginx,然後開啟子nginx來將請求**到各個服務中,這樣除錯api介面的時候就不會影響到我部落格的執行了

首先是root-nginx

配置**到各個子nginx

我這裡展示配置了兩個子nginx,blog-nginx和api-nginx,同時配置了ssl證書,如不需要直接listen 80,刪去ssl相關配置即可

子nginx的server用自己雲伺服器內網ip就好了,沒必要用外網的兜一大圈回來=。=

upstream blog-nginx

upstream api-nginx

server

}server

server

}server

blog-nginx

子nginx就沒必要再配置多一次ssl證書了,畢竟也是之間用ip進行**

可能有人會疑問,為什麼這幾個配置檔案都配置了listen 80,埠不會衝突麼?因為我是用docker來啟動nginx的,可以進行埠對映,在啟動各個nginx的時候將對映到8001、8002…上,如果在一台機器上要同時啟動多個nginx的話,就得把子nginx監聽埠換成8001、8002…等等,才不會埠衝突

upstream blog

server

}

api-nginx

第二個子nginx也同理,直接**到對應服務即可

這裡展示了api-nginx將請求轉到兩個api服務的配置,根據實際情況修改即可

upstream api1

upstream api2

server

location /api2

}

如果使用了docker,可以參考以下啟動命令

root-nginx:

因為我的配置檔案和證書檔案放在了系統/data/nginx/conf.d/下,所以多加上了兩個-v來對映,根據自己實際情況自行修改即可

docker run -itd --name root-nginx -p 80:80 -p 443:443 -v /data/nginx/conf.d/root-nginx.conf:/etc/nginx/conf.d/nginx.conf -v /data/nginx/conf.d/cert:/etc/nginx/conf.d -m 50m --restart=always nginx
blog-nginx:

同理,nginx配置檔案路徑根據自己實際情況自行修改

我加上了-m 51m限制nginx記憶體使用在51m,其實僅僅是為了能夠在看docker stats的時候能夠通過記憶體限制知道是哪個容器而已=。=

外部埠8001對映到容器內80埠

docker run -itd --name blog-nginx -p 8001:80 -v /data/nginx/conf.d/blog-nginx.conf:/etc/nginx/conf.d/nginx.conf -m 51m --restart=always nginx
api-nginx:

docker run -itd --name api-nginx -p 8002:80 -v /data/nginx/conf.d/api-nginx.conf:/etc/nginx/conf.d/nginx.conf -m 52m --restart=always nginx
當然,對於不需要頻繁修改配置的服務,比如部落格,完全可以在root-nginx中直接進行**,不需要再啟動多乙個blog-nginx(不過啟動多乙個nginx也就多用十幾m的記憶體而已=。=)

如果需要其他子網域名稱,也還是不可避免地要在root-nginx中新增相應的配置並重啟,隨著子網域名稱的增加,要啟動的子nginx也會增多,那麼也可以對子nginx進行分組,比如分為兩組:

然後在root-nginx配置中的server_name將他們合併,如:server_name blog.luvying.com a.luvying.com b.luvying.com;,然後需要經常修改配置的幾個網域名稱也放在一塊,這樣就只需要啟動三個nginx了:

root-nginxstable-nginxunstable-nginx

這是本菜雞為了解決因為要經嘗修改配置而重啟nginx且不希望影響其他服務的處理辦法,如果有dalao有更好的方法,歡迎和我交流~

DockerFile檔案的編寫及Docker應用

經過最近幾天在專案中使用的docker實際操作經驗,特將docker常用操作及關鍵點總結如下 docker映象生成命令 sudo docker build t dse docker 104 注意 後面有個點,別忘了 docker容器生成命令 sudo docker run d dse docker ...

Nginx及配置詳解

nginx是lgor sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發布至今,憑藉開源的力量,已經接近成熟與完善。nginx功能豐富,可作為http伺服器,也可作為反向 伺服器,郵件伺服器。支援fastcgi ssl virtual host url rewrite...

nginx詳解及配置

nginx是一款自由的 開源的 高效能的http伺服器和反向 伺服器 同時也是乙個imap pop3 smtp 伺服器 nginx可以作為乙個http伺服器進行 的發布處理,另外nginx可以作為反向 進行負載均衡的實現。nginx使用基於事件驅動架構,使得其可以支援數以百萬級別的tcp連線。ngi...