用webdav代替samba實現windows與linux操做系統server之間的文件共享傳輸(筆記)

互聯網公司之前之間多用samba來實現windows與linux不一樣操做系統機器之間的通訊,常見的是把linux下的某項目開發目錄掛載成爲公司配發的window筆記本的一個虛擬盤。這樣你們就能夠比較方便用的window下的開發工具phpstorm,zendstdio進行程序開發了。php

可是最近,samba爆出一些安全問題,公司內部對使用的samba進行限制。python

咱們能夠用webdav來代替samba, 經過http協議通訊,同樣能夠實現把linux的一個目錄掛載成爲window下的一個虛擬盤。linux

 

首先仍是簡要的介紹一下wbdav:nginx

WebDAV (Web-based Distributed Authoring and Versioning) 一種基於 HTTP 1.1協議的通訊協議。基於GETPOSTHEAD、PUT、HEAD、DELETE、INPUT、TRACE、OPTIONS方法又擴展了幾個方法使應用程序可對Web Server直接讀寫,並支持寫文件鎖定(Locking)及解鎖(Unlock),還能夠支持文件的版本控制git

 

如今咱們用nginx來編譯安裝一個支持webdav的webserver,個人開發機的操做系統環境爲centos6, 如下在cenots6的環境下執行github

從nginx的官網(http://nginx.org)上下載最新版的nginxweb

wget http://nginx.org/download/nginx-1.14.0.tar.gz

 

解壓縮windows

tar zxvf nginx-1.14.0.tar.gz

 

安裝nginx 須要pcre、python、openssl的支持centos

下載這些軟件安全

wget http://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz

而後進行解壓縮

咱們此次編譯安裝nginx啓用webdav並非只是編譯的時候啓用

--with-http_dav_module就夠了,由於nginx內置的只支持webdav的

PUT, DELETE, MKCOL, COPY和MOVE

 這幾個方法,咱們還須要對其擴展,有人擴展了這個模塊,

從git上能夠下載

https://github.com/arut/nginx-dav-ext-module

下載nginx-dav-ext-module 擴展模塊後

咱們能夠編譯了, 

cd nginx-1.14.0
--prefix=../webdav --with-http_dav_module --with-http_ssl_module --with-stream_ssl_module --with-stream_ssl_preread_module --add-module=../nginx-dav-ext-module-master --with-pcre=../pcre-8.42 --with-perl_modules_path=../Python-3.7.0 --with-openssl=../openssl-1.1.1
make && make install

編譯完成後,咱們修改nginx的配置文件,個人配置

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include         mime.types;
    default_type       application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    charset utf8;
    server {
        listen                  8090 ssl;
        server_name                localhost;
        ssl_certificate          ssl/server.crt;
        ssl_certificate_key        ssl/server.key;
        ssl_session_cache         shared:SSL:1m;
        ssl_session_timeout        5m;
        ssl_ciphers                HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root                /home/liuzhongliang/odp;
            dav_methods           PUT DELETE MKCOL COPY MOVE;
            dav_ext_methods       PROPFIND OPTIONS;
            client_body_temp_path /home/liuzhongliang/webdav/client_temp;
            create_full_put_path on;
            dav_access           user:rw  group:rw  all:r;
            auth_basic            "user login";
            auth_basic_user_file  /home/liuzhongliang/webdav/conf/.htpasswd;
        }
    }
}

啓動nginx 

sbin/nginx -c conf/nginx.conf

這樣咱們的webdav服務器就架好了

從上面個人配置文件裏,能夠看到我要作window磁盤映射的linux目錄是/home/liuzhongliang/code/

那麼如何把它映射成爲個人window筆記本的一塊虛擬硬盤呢?

打開window系統開始菜單 ->計算機,

若是所示,點擊上面的映射網絡驅動器

 

而後,在文件夾裏面輸入nginx裏配置的網絡訪問地址

而後點擊完成,就成功了。

相關文章
相關標籤/搜索