The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Как настроить кеширующий репозиторий для Fedora с помощью nginx
Устанавливаем необходимые пакеты

   yum install nginx yum-utils

правим конфиг /etc/nginx/nginx.conf перед последней закрыющейся } дописываем

   include /etc/nginx/vh/*;

создаем каталог

   mkdir /etc/nginx/vh

а в нем файл repocache.local следующего содержания

    server {
        listen                          80;
        server_name                     repocache.local;

        location /pub/fedora {
                autoindex               on;
                root                    /home/repocache;
                error_page              404 = @fetch_yandex;
        }

        location / {
                autoindex               on;
                root                    /home/repocache;
                error_page              404 = @fetch_yandex;
        }

        location @fetch_yandex {
                internal;

                rewrite  ^/pub(.*)$  /$1  break;

                proxy_pass              http://mirror.yandex.ru;
                proxy_store             on;
                proxy_store_access      user:rw  group:rw  all:r;
                proxy_temp_path         /home/repocache/temp;

                root                    /home/repocache/pub;
        }
   }

создаем каталоги 

   mkdir /home/repocache
   mkdir /home/repocache/bin
   mkdir /home/repocache/pub
   mkdir /home/repocache/temp
   chown -R nginx:nginx /home/repocache

в каталог /home/repocache помещаем скрипт clean.sh


    #!/bin/bash

    for f in $@;
    do
        echo $f
        for ff in `repomanage --old $f`;
        do
            rm -f $ff
        done
        rm -f $f/repodata/*
    done

и repocache.sh

   #!/bin/bash

   find /home/repocache/pub -type d -regex .*/updates/.*/i386 -exec /home/repocache/bin/clean.sh {} +
   find /home/repocache/pub -type d -regex .*/updates/.*/x86_64 -exec /home/repocache/bin/clean.sh {} +

   rm -f /home/repocache/temp/*











   #!/bin/bash

   for f in `repomanage --old $1`;
   do
       echo $f
       rm -f $f
   done

   rm -f $1repodata/*

и repocache.sh

   #!/bin/bash

   path_to_repo_dir="/home/repocache/pub/"

   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/linux/updates/11/i386/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/linux/updates/11/x86_64/

   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/rpmfusion/free/fedora/updates/11/i386/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/rpmfusion/free/fedora/updates/11/x86_64/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/rpmfusion/nonfree/fedora/updates/11/i386/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/rpmfusion/nonfree/fedora/updates/11/x86_64/

   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/russianfedora/russianfedora/fixes/fedora/updates/11/i386/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/russianfedora/russianfedora/fixes/fedora/updates/11/x86_64/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/russianfedora/russianfedora/free/fedora/updates/11/i386/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/russianfedora/russianfedora/free/fedora/updates/11/x86_64/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/russianfedora/russianfedora/nonfree/fedora/updates/11/i386/
   /home/repocache/bin/clean.sh ${path_to_repo_dir}fedora/russianfedora/russianfedora/nonfree/fedora/updates/11/x86_64/

   rm -f /home/repocache/temp/*

Запускаем nginx

   service nginx start

Добавляем в crontab запуск скрипта /home/repocache/bin/repocache.sh раз в сутки (ночью)
Перенастраиваем локальные компы и на новый репозиторий и пробуем обновиться
Удачи.
 
19.06.2009 , Автор: fb769
Ключи: fedora, update, nginx / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux

Обсуждение [ RSS ]
  • 1.1, angra (ok), 06:31, 20/06/2009 [ответить]  
  • +/
    Шаманское заклинание без пояснений. Особенно полезно для тех у кого пути к репам не через яндекс.
     
     
  • 2.2, Одмин (?), 12:36, 21/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    не увидил никакого шаманства. Всё просто и понятно. Конечно, людям которые не умеют пользоваться nginx это не поможет, ну так это не руководство по nginx
     

  • 1.3, shader (??), 18:04, 21/06/2009 [ответить]  
  • +/
    Мдааа... Прогрессивная Федора. :) В Альте это было сделано уже больше года назад http://www.altlinux.org/Apt/NginxAsCache
     
     
  • 2.4, AleBaStr (?), 06:22, 22/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    В прогрессивной Федоре для этого есть как минимум https://fedorahosted.org/intelligentmirror/, который описывается в их документации как стандартное решение для данной задачи :)
     
     
  • 3.5, shader (??), 08:49, 22/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, только ему от роду без году неделя :)
    http://git.fedorahosted.org/git/intelligentmirror.git?p=intelligentmirror.git;a=commit;h=c93c3b7cff74aa636b70e9478988b99766e41af6
     
  • 2.6, shader (??), 09:05, 22/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А вот и первоисточник (Август 2007): http://gns-ua.livejournal.com/114453.html
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру