用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里配置的网络访问地址

而后点击完成,就成功了。

相关文章
相关标签/搜索