Konfigurasi WebDav Nginx di CentOS 7


Konfigurasi WebDav Nginx di CentOS 7 - WebDav ( Web Distributed Authoting and Versioning ) merupakan sebuah ekstensi HTTP protocol yang memungkinkan user untuk membuat, merubah dan memindahkan file pada server melalui remote http. Di nginx kita dapat membuat sebuah repository file webdav dengan menggunakan module ngx_http_dav_module. Dengan mengaktifkannya nginx sudah dapat melakukan operation webdav seperti PUT, DELETE, COPY, MKCOL dan MOVE.

Baca Juga:
Install Nginx PHP-FPM Docker Compose
Setup High Availability Web Service Menggunakan Docker HAProxy 

Untuk membuat server repository file menggunakan module webdav pada nginx, kita perlu mengaktifkan module webdav ( --with-http_dav_module) pada saat melakukan installasi nginx. Sobat juga dapat menggunakan image nginx docker secara default sudah menginstall semua module nginx  termasuk webdav sehingga tidak perlu repot untuk recompile nginx. Akan tetapi pada contoh kali, www.dimasrio.com mengcompilenya melalui sourcce.


Setup WebDav Nginx di CentOS 7

Install recruitment packages.
yum install gc gcc gcc-c++ pcre-devel zlib-devel make wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools gperftools-devel libatomic_ops-devel perl-ExtUtils-Embed
Download stable source di nginx.org.
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz
$ tar -zxvf nginx-1.12.2.tar.gz
$ cd nginx-1.12.2
Compile nginx.
$ ./configure --prefix=/opt/nginx --with-http_dav_module
$ make
$ make install
Note : Perintah di atas hanya setup basic nginx dengan module webdav, sobat bisa sesuaikan module sesuai dengan kebutuhan.

Create user, directory dan set permissions.
$ adduser nginx
$ mkdir /var/log/nginx
$ mkdir /opt/nginx/conf/vhosts
$ mkdir /opt/nginx/html/data
$ mkdir /opt/nginx/html/temp
$ chown nginx. -R /opt/nginx/html/data
$ chown nginx. -R /opt/nginx/html/temp
Edit file nginx.conf seperti di bawah ini.
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;
sendfile on;
keepalive_timeout 65;
include vhosts/*.conf;
}
Buat webdav.conf di dalam direktory vhosts yang sudah di buat sebelumnya.
$ touch /opt/nginx/conf/vhosts/webdav.conf
server {
listen 80;
server_name _;
access_log /var/log/nginx/webdav-access.log;
error_log /var/log/nginx/webdav-error.log;
location / {
root /opt/nginx/html/data;
client_body_temp_path /opt/nginx/html/temp;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access user:rw group:rw all:rw;
}
}
Start services nginx.
/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
Allow port http di firewalld.
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

WebDav Operation With Curl

PUT (upload)
curl -XPUT http://192.168.56.101/test.txt --upload-file test.txt
MKCOL (membuat direktory)
curl -XPUT http://192.168.56.101/files/
COPY (menyalin file)
curl -XCOPY --header 'Destination:http://192.168.56.101/files/dimzrio.txt' http://192.168.56.101/test.txt
MOVE (memindahkan / rename file)
curl -XMOVE --header 'Destination:http://192.168.56.101/files/test.txt' http://192.168.56.101/test.txt 
DELETE (menghapus file)
curl -XDELETE http://192.168.56.101/files/test.txt

Demikian tutorial nginx kali ini mengenai konfigurasi webdav nginx di centos 7. Semoga bermanfaat bagi kita semua dan selamat mencoba.!!!


EmoticonEmoticon

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.