互联网公司之前之间多用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协议的通讯协议。基于GET、POST、HEAD、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里配置的网络访问地址
而后点击完成,就成功了。