0
我一直在使用Docker來設置一組坐在Nginx容器後面的Web應用程序。我使用docker-compose
來管理不同的服務,並且所有單獨的Web服務容器都可以正常工作,但是當我嘗試從Nginx容器訪問它們時,只有其中一個工作正常,並且它始終是我嘗試訪問的第一個。因此,如果我啓動容器組並訪問app1,那麼我會按預期得到頁面,但如果我去app2,那麼會出現50x錯誤。如果我重新啓動組並先去app2,那麼我會按預期得到頁面,但是如果我去app1,現在會得到50x錯誤。我不確定我在Nginx配置中做了什麼錯誤。一些援助將非常感激。多個上游代理失敗
這裏是我的Nginx的配置:
upstream app1_backend {
server app1:8000;
}
upstream app2_backend {
server app2:8000;
}
server {
listen 80 default_server;
server_name localhost;
charset utf-8;
#location/{
# root /usr/share/nginx/html;
# index index.html index.htm;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /static {
alias /static;
}
location /app1/ {
proxy_pass http://app1_backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /app2/ {
proxy_pass http://app2_backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我又可以在http://app1:8000/
和http://app2:8000/
正常訪問單個應用程序。