Назад | Перейти на главную страницу

Изображения балансировки нагрузки nginx не загружаются

Ниже приведена моя конфигурация балансировки нагрузки. Другие мои серверы содержат настройку приложения на основе единорога 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)$ { }
}

Проблема, если вы хотите обслуживать их через прокси-серверы, заключается в том, что блок местоположения регулярного выражения имеет более высокий приоритет в поиске местоположения nginx при совпадении URI. Итак, удалите последний блок местоположения или напишите одно уникальное резервное местоположение и используйте 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;
 }

Я исправил это сам, проблема в том, что я должен добавить URL-адрес баланса нагрузки в application.rb, а также в seeeion_store.rb, ошибочно я добавил localhost, поэтому он не может получить изображения, теперь он исправлен.