Networking

How to redirect http request to ftp using nginx

nyoba nulis pake bahasa inggris ah…

Nginx is rocks!! i use nginx as main web server at mirror.unej.ac.id, and i’m so glad because all request from client while downloading iso/img via http files is now redirected to ftp. how can it work? just open nginx configuration at /etc/nginx/sites-available/default with your editor and add some configuration under location / {blah blah}

$ sudo pico /etc/nginx/sites-available/default

add this

rewrite ^/(.+\.(img|iso))$ ftp://mirror.unej.ac.id/$1 permanent;

and see this..

fallen:~$ rm moblin-2.1-final-20091103-002.img
fallen:~$ wget http://mirror.unej.ac.id/pub/iso/moblin/releases/2.1/images/moblin-2.1-final-20091103-002.img
--2009-11-28 22:09:01--  http://mirror.unej.ac.id/pub/iso/moblin/releases/2.1/images/moblin-2.1-final-20091103-002.img
Connecting to 10.10.3.243:3128... connected.
Proxy request sent, awaiting response... 301 Moved Permanently
Location: ftp://mirror.unej.ac.id/pub/iso/moblin/releases/2.1/images/moblin-2.1-final-20091103-002.img [following]
--2009-11-28 22:09:01--  ftp://mirror.unej.ac.id/pub/iso/moblin/releases/2.1/images/moblin-2.1-final-20091103-002.img
Connecting to 10.10.3.243:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 790626304 (754M) [text/plain]
Saving to: `moblin-2.1-final-20091103-002.img'

100%[===================================================================================================>] 790,626,304 6.97M/s   in 90s     

2009-11-28 22:10:31 (8.39 MB/s) - `moblin-2.1-final-20091103-002.img' saved [790626304/790626304]
fallen:~$ wget http://mirror.unej.ac.id/pub/iso/ZoneCD/zoneCD_1.2-7.iso
--2009-11-28 22:26:39--  http://mirror.unej.ac.id/pub/iso/ZoneCD/zoneCD_1.2-7.iso
Connecting to 10.10.3.243:3128... connected.
Proxy request sent, awaiting response... 301 Moved Permanently
Location: ftp://mirror.unej.ac.id/pub/iso/ZoneCD/zoneCD_1.2-7.iso [following]
--2009-11-28 22:26:46--  ftp://mirror.unej.ac.id/pub/iso/ZoneCD/zoneCD_1.2-7.iso
Connecting to 10.10.3.243:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 258668544 (247M) [text/plain]
Saving to: `zoneCD_1.2-7.iso'

100%[===================================================================================================>] 258,668,544 8.02M/s   in 59s     

2009-11-28 22:27:54 (4.15 MB/s) - `zoneCD_1.2-7.iso' saved [258668544/258668544]

fallen:~$

It’s Works bibeh!

Nama Host

Andaikan (inget cuman andaikan lho) saya punya kekuasaan untuk memberi nama-nama komputer, maka nama apa yang akan saya pake?… hm.. Saya biasanya menggunakan nama-nama yang aneh, ya seperti saya yang aneh :D . okeh langsung saja, saya memilih memberikan nama wayang atau Robot. Contoh

  • Ironhide. Komputer Desktop
  • Bumbeblee. Laptop
  • SoundWave. Netbook
  • Barricade. Firewall
  • Devastator. Router
  • Megatron. Fileserver
  • Optimus. Proxy
  • StarScream. Mail
  • Twin

Bagaimana dengan anda?

Berapa besar arsip Debian?

Rilis:
0. Buzz 229Mb
1. Rex 306 Mb
2. Bo 1.2 Gb
3. Hamm 2.1 Gb
4. Slink 4.1 Gb
5. Potato 6.7 Gb
6. Woody 27 Gb
7. Sarge 57 Gb
8. Etch 82 Gb
9. Lenny 125 Gb
10. Squeeze 1 Tb?

update Harian:
0. Pada tahun 2005: dari 200 Mb sampai 2Gb, rata-rata 1Gb. Sekali sehari update
1. Pada tahun 2009: dari 1 Gb sampai 6Gb, rata-rata 2Gb. Update 4 kali sehari.

nah lo.. banyak sekali…. Hebat bukan?

Sumber:  https://penta.debconf.org/dc9_schedule/events/496.en.html

Kampus meng-upgrade koneksinya?

Tanggapan dari pertanyaan di milis tanya jawab

Seseorang telah bertanya di milis tanya jawab tentang dokumentasi mirror, nah saya akan sedikit menjawab tentang bagaimana metode rsync untuk mirror debian/ubuntu dan turunan nya. Sedangkan opensuse saya sudah menjelaskan di tulisan sebelumnya

Rsync sangat di anjurkan bila anda menghendaki penyalinan file dari mirror repository, banyak sekali keuntungan nya tapi saya tidak akan bahas di sini :D . saya akan membahas tentang mirror debian dan turunannya. seperti yang kita ketahui directory standard dari arsip debian adalah adalah

* dists
* pool
* project

nah dalam melakukan mirorring arsip debian kita tidak bisa langsung menggunakan metode rsync biasa yaitu rsync mirror.kesukaan::debian/ /mirrors/debian -avh. itu kalau menurut tim debian mirror adalah salah. lha yang bener gimana? nah yang bener adalah dengan cara dua kali mirroring yaitu:

* alternatif pertama, melakukan mirroring directory pool/ kemudian baru melakukan mirroring semuanya, contoh:

# stage pertama
rsync -avhH --timeout 3600 --stats --partial --chmod=a+rX,u+w,og-w \
--exclude ~.tmp/ --chmod=a+rX,u+w,og-w \
ftp.debian.org::debian/pool/ /ftp/debian/pool/
# stage ke dua
rsync -avhH --timeout 3600 --stats --partial \
--exclude ~.tmp/ --delete --delete-after --delete-exclude --chmod=a+rX,u+w,og-w \
ftp.debian.org::debian/ /ftp/debian/
LANG=C date -u > "/ftp/debian/project/trace/`hostname -f`"

* alternatif ke dua, melakukan mirrorng tanpa menyertakan berkas Packages*, Sources*, ls-lRh*, dll. contoh

# stage pertama
rsync -avhH --timeout 3600 --stats --partial --chmod=a+rX,u+w,og-w \
--exclude Packages* --exclude Sources* --exclude Release* --exclude ls-lR*  --exclude .~tmp~/ \
--exclude project/trace/`hostname -f` \
ftp.debian.org::debian/ /ftp/debian/
# stage ke dua
rsync -avhH --timeout 3600 --stats --partial --chmod=a+rX,u+w,og-w \
--exclude Packages* --exclude Sources* --exclude Release* --exclude ls-lR*  --exclude .~tmp~/ \
--exclude project/trace/`hostname -f` \
--delay-updates --delete --delete-excluded \
ftp.debian.org::debian/ /ftp/debian/
LANG=C date -u > "/ftp/debian/project/trace/`hostname -f`"

nah bagaimana yang terbaik dari keduanya? silakan uji sendiri. saya menggunakan alternatif ke dua. Yang perlu di tekankan di sini adalah kenapa menggunakan dua metode itu? nah ini di karenakan dalam melakukan apt-get update kita hanya akan mengunduh berkas Packages/Packages.gz/Release/Source/Sources.gz jadi bila kita menjumpai ada teman kita waktu install dia menemukan “file not found” di server maka ada yang salah dengan metode singkronisasinya di server. Packages/Packages.gz/Release/Source/Sources.gz ini merupakan kumpulan paket atau sebut saja database dari paket-paket di dalam direktory pool/. jadi bila si database di unduh duluan maka akan terjadi kebingungan karena di database ada tapi kok di pool/ ga ada. Selain itu mutlak di berkanya timestamp di project/trace/. kenapa? ini untuk menandakan kapan terakhir si server melakukan singkronisasi.

Nah sekarang saya pengen membuat mirror debian/ubuntu dari mana saya dapatkan scriptnya? bisa di dapatkan di
* http://mirror.unej.ac.id/~udienz/push/anonftpsync
* https://launchpad.net/sedot
* http://mirror.unej.ac.id/debian/project/ftpsync/ftpsync-current.tar.gz

mana yang mudah? semua mudah kok :D