• nginx开放webdav,openwrt专用,kodi可用。


    简介:

    webdav是基于HTTP的扩展协议,类似FTP了,可以上传,可以下载。

    我现在有一个openwrt,有2G内存,500G硬盘,挂了aria2下载电影。

    平时习惯用kodi通过samba看电影,可是还是有点不方便,只能局域网,并不能广域网,这个webdav,就可以突破samba的限制,实现广域网访问了。

    反正公网IPV6也调试完成,把家,办公室,父母家都连起来吧。

    一:openwrt的IPV6

    这个可以翻前面的文章,不赘述了。

    二:openwrt,安装nginx

    opkg update
    opkg remove nginx luci-ssl-nginx nginx-util nginx-ssl  --force-depends
    opkg install nginx-all-module
    opkg install luci-ssl-nginx

    三:方法一:增加端口访问

    1.增加webdav账号密码

    echo "admin:$(openssl passwd 123456)" >/etc/nginx/conf.d/.davpasswd

    2.配置共享目录及权限

    本例目录是/storage/data/share

    mkdir /storage
    mkdir /storage/data
    mkdir /storage/data/share
    chown -R nobody:nogroup /storage/data/share/
    chmod -R 700 /storage/data/share/

    3.配置nginx配置文件

    增加一个配置文件/etc/nginx/conf.d/webdav.conf

    本例端口是8080

    server {
            listen 8080;
            listen [::]:8080;
            server_name  _;
            charset utf-8;
            location / {
                root /storage/data/share;
                if ($request_method = MKCOL) {
                # 解决 MKCOL 需要以'/'结尾
                rewrite  ^(.*[^/])$  $1/  break;
                }
                dav_methods PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods PROPFIND OPTIONS;
                dav_access user:rw group:rw all:r;
                auth_basic "Authorized Users WebDAV";
                auth_basic_user_file /etc/nginx/conf.d/.davpasswd;
                }
            }

    4.测试nginx配置文件

    nginx -t -c /etc/nginx/uci.conf

    nginx: configuration file /etc/nginx/uci.conf test is successful

    successful就是通过测试

    5.重启nginx

    root@OpenWrt:~# /etc/init.d/nginx reload
    root@OpenWrt:~# /etc/init.d/nginx restart

     没报错就是好的。

    6.测试webdav

    用winscp来测试,我是没通过那个windows映射磁盘,也不知道为什么。

    四:方法二:增加路径访问

    其实就是nginx的配置文件不同:

    配置失败,也许是winscp不支持带路径的webdav。

    windows映射磁盘失败。

    五:方法三:增加域名访问

    还是nginx的配置文件不同:

    删除listen 

    配置server_name为你的域名,并将域名解析到这个openwrt上即可。

    server {
            server_name test.jack.com;
            charset utf-8;
            location / {
                root /storage/data/share;
                if ($request_method = MKCOL) {
                # 解决 MKCOL 需要以'/'结尾
                rewrite  ^(.*[^/])$  $1/  break;
                }
                dav_methods PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods PROPFIND OPTIONS;
                dav_access user:rw group:rw all:r;
                auth_basic "Authorized Users WebDAV";
                auth_basic_user_file /etc/nginx/conf.d/.davpasswd;
                }
            }

    六:

    七:

    八:

    九:

    十:

     

  • 相关阅读:
    如何解决App无法收到android开机广播
    如何实现开机启动、清缓存、杀进程、悬浮窗口单双击区分,附源码
    WaitForSingleObject 介绍【转】
    C++ Unicode SBCS 函数对照表【转】
    数字IP字符串IP转换
    打印内存【CSDN】
    巧妙的无重复随机数方法
    <unnamedtag>”后面接“int”是非法的
    友元函数与重载运算符【转】
    QT QTableWidget 用法总结【转】
  • 原文地址:https://www.cnblogs.com/jackadam/p/16193109.html
Copyright © 2020-2023  润新知