Ubuntu

nginx負載平衡圖像未載入

  • October 31, 2014

下面是我的負載平衡配置。我的其他伺服器包含基於 nginx 獨角獸的應用程序設置。當我嘗試上述配置時,圖像未載入。我共有三台伺服器 1 用於負載平衡,另外 2 台用於應用程序。有人可以幫我弄這個嗎。我對此感到非常震驚。

upstream backend {
   server ws1.10.10.1.1 fail_timeout=10;
   server ws2.10.10.1.2 fail_timeout=5;
}

server {

   listen 80;
   client_max_body_size 2G;
   server_name staging.xxxx.com;
   include /etc/nginx/mime.types; 
   default_type  application/octet-stream;
   location / {
       proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header  X_FORWARDED_PROTO $scheme;
       proxy_set_header  Host $host;
       proxy_connect_timeout 3;
       proxy_read_timeout 60;
       proxy_send_timeout 60;
       proxy_redirect false;
       proxy_max_temp_file_size 0;

       if (!-f $request_filename) {
           proxy_pass http://backend;
       }
   }

   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { }
}

我自己修復了它,問題是我應該在 application.rb 和 seeeion_store.rb 中添加負載平衡 url,我錯誤地添加了 localhost,所以它現在無法獲取圖像。

如果您想通過代理伺服器為它們提供服務,問題是當 URI 匹配時,正則表達式位置塊在 nginx 位置的搜尋中具有更高的優先級。因此,刪除最後一個位置塊或編寫一個唯一的備份位置並使用try_files.

open_file_cache max=10 inactive=10m;
open_file_cache_valid 5m;
open_file_cache_min_uses 1;
open_file_cache_errors on;

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
   # other stuff
   try_files /unreachable/path @fallback;
}

location / {
   # other stuff
   try_files /unreachable/path @fallback;
}

location @fallback {
   proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header  X_FORWARDED_PROTO $scheme;
   proxy_set_header  Host $host;
   proxy_connect_timeout 3;
   proxy_read_timeout 60;
   proxy_send_timeout 60;
   proxy_redirect false;
   proxy_max_temp_file_size 0;
   proxy_pass http://backend;
}

引用自:https://serverfault.com/questions/640170