(yes-repost)
kasus:
saya menemui kasus uploading file yang bukan ke database, ke folder di server, pada multi server (pakai load balancer). server saya memiliki IP: 10.1.99.106 dan 10.1.99.107 dengan lokasi file upload identik: /var/www/blablala/uploads/. pengennya setiap upload file entah masuk ke server 106 atau 107 akan otomatis sinkronisasi folder uploads/
penyelesaian:
pada kedua server saya lakukan langkah2 berikut:
1. buat file konfigurasi rsync daemon pada server 107(master): /etc/rsyncd.conf
[Module_Name]
path = Filesystem_Path (ini path sumber file kliatannya)
comment = Comment
auth users = Authenticated_Users
secrets file = User_Password_file
hosts allow = IP_Addresses
jadi isinya /etc/rsyncd.conf begini:
[uploads]
path = /var/www/blablabla/uploads/
comment = Uploads sync
auth users = root
secrets file = /etc/rsyncd.secret
hosts allow = 10.1.99.106
2. buat file rahasia: /etc/rsyncd.secret
user:password
jadi isinya /etc/rsyncd.secret begini:
root:wedusgibasmanak7
3. ubah permision file rsyncd.secret menjadi 400
chmod 400 /etc/rsyncd.secret
4. jalankan setan(daemon)nya
rsync –daemon
5. buat file password /etc/rsync.pwd yang isinya 1 baris password
wedusgibasmanak7
6. jalankan command sinkronisasinya (ini dari server 107):
rsync -rpog root@10.1.99.106::uploads /var/www/blablabla/uploads/ –password-file /etc/rsync.pwd
perintah itu menjalankan perintah sinkronisasi folder uploads dari server 106 ke 107, perincian perintahnya:
parameter pertamax: -rpog = recrusive, permition, owner, group, penjelasan detil di https://ss64.com/bash/rsync_options.html
parameter keduax: user@host::module_name, kalau saya pakai user root, hostnya host server sumber, module_name sesuai nama modul pada file /etc/rsyncd.conf
parameter ketiga: path tujuan
parameter keempat: lokasi password file