鍍金池/ 問答/Linux/ docker nginx 正確的使用姿勢是什么?

docker nginx 正確的使用姿勢是什么?

感謝各位的回答,統(tǒng)一回答一下:代碼變動為何要重啟nginx?
典型場景,基于nginx的微服務(wù)。
a.service.com:80
b.service.com:80
服務(wù)代碼升級肯定有變動,有變動肯定要重啟服務(wù),a和b之間肯定不能互相影響。
(至于為什么是基于nginx的微服務(wù),這不是重點。)

目前用的云服務(wù)供應(yīng)商的容器服務(wù)是可以配置就好,全是80端口可以訪問,但是我想知道自己實現(xiàn)如何實現(xiàn)的。

**我不知道有人踩一下一個問題的原因是什么?
這個問題有什么問題請指出來好嗎?**

回答
編輯回答
幼梔

講道理,a和b肯定是互不影響的,因此肯定是將a和b分別放到兩個nginx里面,我覺得這句不太對(個人理解),放一個容器也沒有問題的吧,不使用Docker時,Nginx通常也用于代理多個服務(wù)。說放一起相互影響,那么前端掛一個代理,去分別代理a和b兩個服務(wù),那么在代理這一層,兩者不也會相互影響么。

2017年9月25日 19:41
編輯回答
心癌

docker啟動一個nginx容器監(jiān)聽80,然后啟動一個8080端口的容器a和8081容器的b,在用nginx的配置文件里監(jiān)聽訪問的域名然后分發(fā)到不同的端口,html和js改動了不用重啟的

2018年8月25日 23:35
編輯回答
蝶戀花

我不明白的是,代碼變動為何要重啟nginx。
如果讓每個容器都映射到80絕對是有沖突的,建議你使用負(fù)載均衡或反向代理去完成你想要的實現(xiàn)。

2018年1月15日 15:39
編輯回答
憶當(dāng)年

搞不懂問什么,不過:

我現(xiàn)在有兩個sites:a.com,b.com 都放到容器里面。
講道理,a和b肯定是互不影響的,因此肯定是將a和b分別放到兩個nginx里面。
但是又不能同時映射到80端口,請問應(yīng)當(dāng)如何解決?

1個 nginx 即可,可以同時使用 80 端口。

2018年8月11日 01:11
編輯回答
檸檬藍(lán)

運行一個nginx容器,將配置文件掛載進(jìn)去即可。

你可以每個虛擬主機(jī)定義一個單獨的.conf配置文件,把整個目錄掛載到容器中的/etc/nginx/conf.d/即可

2018年1月11日 03:50
編輯回答
純妹

這個需求用nginx-proxy就可以完美解決了

github地址

先啟動nginx-proxy給它80、443端口

然后后續(xù)有容器要對外服務(wù)并有域名的時候,環(huán)境變量加個VIRTUAL_HOST就行了

具體用法詳見github

2018年4月22日 23:09