我在Docker中玩弄我的本地開發環境。我現在的設置是5個容器(1個HaProxy + 2個NGINX + 2個PHP7-FPM)。Docker:不同端口上的多個PHP7-FPM容器
代理容器是用來直接根據網址的請求,所以如果我進入http://project1.dev
它將請求代理到使用project1-php
評估PHP的project1-nginx
。該設置與類似。
現在,我試圖圍繞兩個PHP容器的端口來包裝我的頭。默認的fpm端口是9000,所以這兩個PHP容器都無法運行。我假設這裏要走的路是讓兩個容器都輸出端口9000,但是讓它們在主機上是9000和9001?
在撰寫文件中沿着這些行的東西。
project_1_php:
ports:
- "9000:9000"
project_2_php:
ports:
- "9001:9000"
所以,一切開機罰款,項目1是工作,但項目2給了我一個502的Nginx錯誤日誌說
2016/01/26 14:37:05 [error] 6#6: *1 connect() failed (111: Connection refused)
while connecting to upstream, client: 172.17.0.9, server: code.dev,
request: "GET/HTTP/1.1", upstream: "fastcgi://172.17.0.4:9001"
嗯..你爲什麼 「靶向」 nginx的服務器?它沒有任何意義..是你的HAProxy之間的路由器和Nginx之間或Nginx和Fpm之間? – Mjh
我不確定我是否明白您的目標是Nginx的含義?是的,代理位於路由器和nginx之間 – Esben
您正在使用2個nginx服務器,每個服務器都有一個定義'project1.dev'或'project2.dev'的'server {}'塊,並且取決於它 - 它們代理它適合'php-fpm'機器。這個邏輯稍微偏離了一點,你甚至不需要HAProxy,在這種情況下它是無用的。但是,這是不合時宜的。你確定第二個'fpm'服務器允許來自'172.17.0.9'的連接嗎?默認配置只允許來自本地主機的連接。 – Mjh