- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ув. форумчане!
Такой вопрос. Есть 2 впс, nginx+apache, nginx на франтєнде, 2 домена, 2 ip.
Структура сайтов на доменах одинаковая. Имиджи хранятся в domain1.com/files/small/
Хочу сделать так, чтобы все файлы для domain2.com/files/small/ брались nginxom в domain1.com/files/small/ , кэшировались на domain2.com и браузеру отдавались по пути domain2.com/files/small/
Конфиг nginxa такой
server {
listen ip2:80;
server_name domain2.com www.domain2.com;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
error_page 404 = @fallback;
# Кешировать указанные коды ответов 5 минут
proxy_cache_valid 200 301 302 304 5m;
# Ключ по которому сохраняются и берутся данные из кеша
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
# Защита от раздачи одинаковой куки в кешированном ответе
proxy_hide_header "Set-Cookie";
# Игнорировать параметры кеша заданные бекэндом
proxy_ignore_headers "Cache-Control" "Expires";
# Указывает в каких случаях клиенту можно отдать несвежий ответ из кеша
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
# активировать зону кеширования pagecache
proxy_cache pagecache;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://ip2:8080;
proxy_redirect http://domain2.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://ip2:8080;
proxy_redirect http://domain2.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/rushosting/data/www/domain2.com;
access_log /var/www/httpd-logs/domain2.com.access.log ;
access_log /var/www/nginx-logs/rushosting isp;
}
location /files/small/ {
proxy_pass http://ip1:8080;
proxy_redirect http://domain1.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location @fallback {
proxy_pass http://ip2:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Искомая секция
location /files/small/ {
proxy_pass http://ip1:8080;
proxy_redirect http://domain1.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
Рестартую нгинкс, ответ на запрос изображения пишет file not found!
Смотрю логи nginx
2011/01/07 19:19:26 [error] 26454#0: *8412 open() "/var/www/data/www/domain2.com/files/small/item_5562.jpg" failed (2: No such file or directory), client: 91.211.248.143, server: domain2.com, request: "GET /files/small/item_5562.jpg HTTP/1.1", host: "domain2.com"
2011/01/07 19:19:27 [error] 26454#0: *8378 open() "/var/www/data/www/domain2.com/files/small/item_3655.jpg" failed (2: No such file or directory), client: 91.211.248.143, server: domain2.com, request: "GET /files/small/item_3655.jpg HTTP/1.1", host: "domain2.com"
там какая-то статика как я понял, в этом /files/small ?
тогда так:
location бла-бла {
alias /нужный/путь/;
try_files $uri =404;
}
а то получается что вы отдаете тупо backend-у запрос, а он же ничего не знает о ваших надобностях..
-------
упс, не все прочел. впс-а же 2...
ну тогда попробуйте proxy_set_header Host domain1.com, а то у вас в хидерах же domain2 передается к backend-у domain1
location /files/small/ {
proxy_set_header http://domain1.com $host;
alias /files/small/;
try_files $uri =404;
}
Не сработало!
BasePelleta добавил 07.01.2011 в 22:21
На domain1.com 8080 порт апачем занят!
вот так кажется -
ну и кэширование стандартно сюда...
Не заработало!
[Fri Jan 07 22:27:47 2011] [error] [client 91.211.249.68] File does not exist: /var/www/data/www/domain2.com/files/small/item_634.jpg, referer: http://domain2.com/
[Fri Jan 07 22:27:47 2011] [error] [client 91.211.249.68] File does not exist: /var/www/data/www/domain2.com/files/small/item_3862.jpg, referer: http://domain2.com/
[Fri Jan 07 22:27:47 2011] [error] [client 91.211.249.68] File does not exist: /var/www/data/www/domain2.com/files/small/item_646.jpg, referer: http://domain2.com/
[Fri Jan 07 22:27:48 2011] [error] [client 91.211.249.68] File does not exist: /var/www/data/www/domain2.com/files/small/item_4694.gif, referer: http://domain2.com/
BasePelleta добавил 07.01.2011 в 23:51
Работающий вариант!
location ~ /files/small/ {
proxy_pass http://ip1;
proxy_redirect http://domain1.com/ /;
proxy_set_header Host domain1.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
И в конфиге выше секцией!
Спасибо r0mik !
И зачем проксировать статику то ? не проще ли директорию указать откуда ее брать? Например:
root /var/www/rushosting/data/www/domain1.com/files/small/;
}
она на другом сервере