我有三個碼頭容器在不同的端口,並希望實現與每個容器的nginx反向代理,以便我可以導航到每個容器通過傳遞關鍵字而不是端口。喜歡而不是http://localhost:3000
我想通過像http://localhost/app1
與nginx和docker容器實現反向代理與不同的端口
我用下面的dockerfile創建了nginx圖像。
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY index.html usr/share/nginx/html
和我的nginx的conf文件看起來像
worker_processes 1;
事件{worker_connections 1024; }
HTTP {
sendfile on;
upstream app1 {
server localhost:3000;
}
upstream app2 {
server localhost:3001;
}
server {
listen 3000;
location /app1 {
proxy_pass http://localhost:3000;
proxy_redirect off;
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-Host $server_name;
}
}
server {
listen 3001;
location /app2 {
proxy_pass http://localhost:3001;
proxy_redirect off;
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-Host $server_name;
}
}
}
而是從圖像生成nginx的容器之後。我看到了創建的容器。但是當我試圖訪問本地主機超時,所以nginx沒有運行或我錯過了什麼。我無法使用localhost/app1或app2加載容器,甚至localhost也無法運行。需要幫助。提前致謝。
你的答案Aussourd感謝。我確實改變它聽80端口,但現在我得到500錯誤 – Jes
@Jes它通常意味着你的應用程序崩潰。你應該檢查你的應用程序日誌 –