互聯網公司之前之間多用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裏配置的網絡訪問地址
而後點擊完成,就成功了。