Форум программистов, компьютерный форум, киберфорум
Nginx
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Заблокирован

Отдавать статичные файлы со второго сервера

24.08.2022, 23:13. Показов 1300. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1 - сайт, сайт на котором хранятся файлы, стили, изображения, различные стили шрифтов и тд.
2 - сайт, на котором указаны относительные пути на те файлы, которые расположены на 1 сайте, логично он их не находит.

Оба сайта расположены на локальном сервере, на одном.

Вопрос в том, как настроить nginx для 2 сайта так, чтобы, если ссылка указана относительная и видет на изображение, стили и тд. Отдавать содержимое, беря его с 1 сайта.

То есть пути остануться относительными в html документы, но при запросе на них. nginx будет отдавать, брать их с первого сайта.

То есть так со всем, если путь относительный, значит данный файл есть на 1 сервре.

Возможно ли так его настроить, для 2 сайта, то есть создать своего рода правило?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2022, 23:13
Ответы с готовыми решениями:

Как отдавать файлы с сервера по запросу?
Здравствуйте! Непосредственно к вопросу: я научился загружать файлы на сервер через POST запрос достаю через request.FILES и...

Хостинг не хочет отдавать файлы
Доброго дня. В общем приключилась одна история, с другом решили создать сайт и заливать на него игры, фильмы, игровые новости. Несколько...

Отдавать разные файлы по юзер-агенту
Добрый день Подскажите, как бы сделать красиво задачу: Условие: ... если у клиента юзерагент (А): отдаем ему файл из...

10
1312 / 1004 / 232
Регистрация: 01.10.2018
Сообщений: 3,910
26.08.2022, 10:45
Попробуйте тег base использовать, если относительные начинаются не с ./ или ../. Обычно просто адреса в самих ссылках меняют и все.

Что касается настройки Web-сервера, можно попробовать использовать символические ссылки на отдельные каталоги сайта с данными, совместить корневые каталоги сайтов и т.п.

На стили и прочие общие элементы лучше вообще не ссылаться при помощи относительных адресов. Абсолютный путь я не отношу к относительным адресам, так что если относительными вы назвали адреса наподобие /path, то и тег base не подойдет.
1
Заблокирован
28.08.2022, 15:56  [ТС]
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
server {
    server_name site.su www.site.su;
    charset off;
    index index.php;
    disable_symlinks if_not_owner from=$root_path;
    include /etc/nginx/vhosts-includes/*.conf;
    include /etc/nginx/vhosts-resources/site.su/*.conf;
    access_log /var/www/httpd-logs/site.su.access.log;
    error_log /var/www/httpd-logs/site.su.error.log notice;
    ssi on;
    return 301 https://$host:443$request_uri;
    set $root_path /var/www/user/data/www/embed;
    root $root_path;
    location / {
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @fallback;
        }
        location ~* ^.+\.(jpg|jpeg|gif|png|webp|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
            try_files $uri $uri/ @fallback;
        }
        location / {
            try_files /does_not_exists @fallback;
        }
    }
    location @fallback {
        proxy_pass http://127.0.0.1:8081;
        proxy_redirect http://127.0.0.1:8081 /;
        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-Forwarded-Port $server_port;
        access_log off;
    }
    listen 62.102.14.42:80;
}
server {
    server_name site.su www.site.su;
    ssl_certificate "/var/www/httpd-cert/user/site.su_le1.crtca";
    ssl_certificate_key "/var/www/httpd-cert/user/site.su_le1.key";
    ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
    charset off;
    index index.php;
    disable_symlinks if_not_owner from=$root_path;
    include /etc/nginx/vhosts-includes/*.conf;
    include /etc/nginx/vhosts-resources/site.su/*.conf;
    access_log /var/www/httpd-logs/site.su.access.log;
    error_log /var/www/httpd-logs/site.su.error.log notice;
    ssi on;
    set $root_path /var/www/user/data/www/embed;
    root $root_path;
    location / {
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @fallback;
        }
        location ~* ^.+\.(jpg|jpeg|gif|png|webp|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
            try_files $uri $uri/ @fallback;
        }
        location / {
            try_files /does_not_exists @fallback;
        }
    }
    location @fallback {
        proxy_pass http://127.0.0.1:8081;
        proxy_redirect http://127.0.0.1:8081 /;
        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-Forwarded-Port $server_port;
        access_log off;
    }
    listen 62.102.14.42:443 ssl http2;
}
Народ, выручайте, конфиг сайта, какие параметры в location не выставлял, какие пути не прописывал. Не удается настроить так, чтобы к примеру ели запрос на изображение, чтрьы nginx брал данное изображение со второго сайта

Code
1
2
try_files /var/www/user/data/www/site2.ru @fallback;
try_files /../site2.ru @fallback;
Как угодно писал, не выходит. Не понимаю, с какого каталога nginx начинает искать, с того кгде расположены папки сайтов или от корня, то есть путь необходимо писать с /var/...

Добавлено через 1 час 51 минуту
Code
1
2
3
4
5
6
7
8
9
10
set $root_path /var/www/user/data/www/site.ru;
root $root_path;
location / {
   location ~* ^.+\.(jpg|jpeg|gif|png|webp|ico|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    alias /../site1.ru;
   }
    location / {
    try_files /does_not_exists @fallback;
    }
}
Каталог сайта - /var/www/user/data/www/site.ru, если на нем размещать изображения, берет, работает.
Но мне необходимо выполнить так, чтобы статичные файлы виде изображений брались со второго сайта.

Как верно указать данный конфиг
Code
1
alias /../site1.ru;
Я не понимаю...
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
28.08.2022, 16:25
Лучший ответ Сообщение было отмечено Gerd199 как решение

Решение

http://nginx.org/ru/docs/http/... .html#root
Путь к файлу формируется путём простого добавления URI к значению директивы root
Code
1
2
3
4
location ~* ^.+\.(jpg|jpeg|gif|png|webp|ico|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    root /var/www/user/data/www/site2.ru;
    try_files $uri @fallback;
}
При запросе
Code
1
/folder/file.jpg
nginx будет искать файл по такому пути:
Code
1
/var/www/user/data/www/site2.ru/folder/file.jpg
Править нужно блок server там где
Code
1
listen 62.102.14.42:443 ssl http2;
1
Заблокирован
28.08.2022, 17:12  [ТС]
Ура, работает

Добавлено через 35 минут
Что если необходмо отдать файл, который расположен на другом сервере, не локально. Где можно почитать про настройку данной возможности. То есть обращаемся по url к текущему сайту, а nginx в свою очередь коннектится по ip к другому серверу и ищет данный файл там??
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
28.08.2022, 19:04
Модуль ngx_http_proxy_module позволяет передавать запросы другому серверу.
http://nginx.org/ru/docs/http/... proxy_pass
0
Заблокирован
28.08.2022, 22:26  [ТС]
Code
1
2
3
4
location ~* ^.+\.(mp4|webm)$ {
    proxy_pass http://91.62.103.152;
    try_files $uri @fallback;
}
ip - изменил, но если в браузере открыть http://91.62.103.152
Каталог с файлами будет доступен, правда без сертификата

Изменил конфиг, далее открываю файл по адресу https://site.ru/1.mp4

Не выходит, пишет что файл не найден.

Не понимаю, вроде бы сделал все то же самое. Не работает, может быть дело в том, что адрес http://91.62.103.152 доступен без сертификата?

Добавлено через 46 минут
Code
1
2
3
location ~* ^.+\.(mp4|webm)$ {
    proxy_pass http://91.62.103.152;
}
В первом случаи не находит файл, в данном случаи с домена переадресовывает на данный ip с путями.

Как выполнить так, чтобы не было переадресации и файл был доступен через домен на котором установлен ssl сертификат?
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
28.08.2022, 22:41
В первом случае try_files выполняется раньше чем proxy_pass и в итоге запрос попадает в
Code
1
location @fallback {
.

Цитата Сообщение от Gerd199 Посмотреть сообщение
переадресовывает на данный ip с путями.
Покажите какие HTTP заголовки возвращает сервер.
0
Заблокирован
28.08.2022, 23:08  [ТС]
Открываю

Отображает список mp4 файлов

Заголовки на скриншете
Миниатюры
Отдавать статичные файлы со второго сервера  
0
Заблокирован
28.08.2022, 23:53  [ТС]
Открываю:
Code
1
https://92.*.*.*/
Добавлено через 5 минут
Перед этим даю согласие, что отсутствует ssl сертификат...

Добавлено через 33 минуты
Возможно настроить так, чтобы работало без ssl сертификата? На домене обращение с ssl сертификатом, а уже сервер отдал файл с другого сервера без сертификата?
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
29.08.2022, 04:36
В proxy_pass просто поставить https.
Code
1
proxy_pass https://91.62.103.152;
http://nginx.org/ru/docs/http/... ssl_verify
По умолчанию там
Code
1
proxy_ssl_verify off
проверка сертификата проксируемого HTTPS-сервера отключена так что проблем с сертификатом быть не должно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2022, 04:36
Помогаю со студенческими работами здесь

Появление второго DHCP-сервера
Вот такой вопрос: есть две отдельные сетки. в каждой свой сервер DHCP, адреса не перекрываются, маска одинаковая. если теперь эти...

Установка второго сервера в домене
Вот замучила почта которую я так и не настроил между 2 севаками Domino ...снес ...решил поставить второй сервер в домене имеющегося ... ...

Установка второго сервера домино в другом домене
Есть сервер, стоит задача установить 2-й, но в другом домене пока немного расплывчато это представляю (у нас будут 2 домена, кот....

Подключение второго сервера к домену Windows Server 2008 R2
Всем привет! подскажите пожалуйста, как решить проблему! я не особо разбираюсь в администрировании сети, это касается практической части....

Установка второго веб сервера в локальной сети IIS 6.0 + Apache 2.2.10
Прежде чем задать вопрос хочу написать данные которые имеются чтобы суть вопроса была понятна сразу. 1 Сервер: Локальный адрес...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru