prodimon
@prodimon
Developer and System administrator

Как правильно настроить nginx upstream?

Есть 6 web серверов с уникальным контентом (статические файлы)
хочу совместить их всех в 1 web сервер с кэшированием файлов

fe225922abcd456da668795d6cc8a6cb.png

вот код который я собрал
но он оказался не идеальным решением
upstream backend {
    server 1.1.1.1:80;
    server 2.2.2.2:80;
    server 3.3.3.3:80;
    server 4.4.4.4:80;
    server 5.5.5.5:80;
    server 6.6.6.6:80;
}

server {
    listen 80;
    server_name dl.site.com;
        root    /var/www;

        location / {
                error_page         404 = @none;
        }

        location @none {
                internal;
                proxy_pass         http://backend;
                proxy_store        on;
                proxy_temp_path    /var/www;
        }
}


нужный файл лежит только в 3.3.3.3:80/file3
при первом обращении к dl.site.com/file3 выдаёт 404
если несколько раз делать запрос на файл то в каком то случаи скачается (что не приемлемо)

Как собрать кофиг чтобы при первом запросе nginx прошёлся по всем 6 серверам и выкачал файл ?
  • Вопрос задан
  • 2868 просмотров
Решения вопроса 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
upstream backend {
    server 1.1.1.1:80;
    server 2.2.2.2:80;
    server 3.3.3.3:80;
    server 4.4.4.4:80;
    server 5.5.5.5:80;
    server 6.6.6.6:80;
}

		location / {
			proxy_pass http://backend;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
      proxy_next_upstream error timeout http_404;
		}


Как-то так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Madnezz
Делаете dl1.site.com, dl2.site.com, dl3.site.com, dln.site.com и в ссылках уже указываете на dl3.site.com/file3 и проксируте эти запросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы