openwrt uhttpd更换caddy的备忘
Janz Lv4

openwrt uhttpd更换caddy的备忘

openwrt的web服务是uhttpd这个轻量级的反代提供的,能提供的功能太弱了,如果使用性能比较强的cpu,以及内存比较大,可以更换为其他的反代,例如nginx,caddy,haproxy等,本文主要记录一下更换caddy的过程。

文章内容均来自:https://www.dolingou.com/article/openwrt-caddy-homelab-reverse-proxy,本文主要是记录备忘。

安装带有php支持的Caddy

默认的官网版本或者源中的caddy都是不带php支持的,无法使用,我们直接下载支持的版本即可。

https://caddyserver.com/download 打开链接后选择对的系统平台和cpu架构,搜索aksdb/caddy-cgi/v2​,勾选上直接下载即可。

image

  1. 我的设备是N1,也可以直接用命令行下载。

$ curl -O https://caddyserver.com/api/download?os=linux&arch=arm64&p=github.com%2Faksdb%2Fcaddy-cgi%2Fv2&idempotency=73058696755620

  1. 重命名后给与可执行权限并移动到/usr/bin
1
2
3
$ mv caddy_linux_amd64_custom caddy
$ sudo chmod +x caddy
$ sudo mv caddy /usr/bin

配置Caddyfile​ 文件

  1. 配置文件在/etc/caddy/Caddyfile​,没有就自己新建一个文件即可
    $ sudo vim /etc/caddy/Caddyfile

  2. 添加如下内容,具体的文件意义可以看原文

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    {
    order cgi before respond
    order file_server last

    # skip_install_trust
    # auto_https disable_redirects
    # default_sni openwrt.local
    }

    (luci) {
    root * /www
    route /cgi-bin* {
    @exists {
    file cgi-bin/{path.1} =404
    }
    handle @exists {
    uri strip_prefix {file_match.relative}
    cgi * /www/{file_match.relative} {
    script_name {file_match.relative}
    }
    }
    }
    cgi /ubus* ubus.sh {
    script_name /ubus
    }
    file_server
    redir / /cgi-bin/luci
    }

    http:// {
    import luci
    }

下载ubus.sh​并进行配置

1
2
3
4
5
6
7
8
9
10
11
# 下载ubus脚本
$ curl -O https://raw.githubusercontent.com/yurt-page/cgi-ubus/master/ubus.sh

# 复制到/etc/caddy和/www/cgi-bin
$ sudo chmod +x ubus.sh
$ sudo cp ubus.sh /etc/caddy
$ sudo cp ubus.sh /www/cgi-bin

# uci设置
$ sudo uci set luci.main.ubuspath='/cgi-bin/ubus.sh'
$ sudo uci commit

关闭uhttpd

1
2
$ sudo /etc/init.d/uhttpd disable
$ sudo /etc/init.d/uhttpd stop

配置caddy启动脚本

  1. 在/etc/init.d 下新建一个caddy的文件,复制粘贴如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh /etc/rc.common


START=99

SERVICE_USE_PID=1
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1

start() {
service_start /usr/bin/caddy run --config /etc/caddy/Caddyfile
}

stop() {
service_stop /usr/bin/caddy
}
  1. 赋予可执行权限

$ sudo chmod +x /etc/init.d/caddy

  1. 启动caddy并配置开机自启动

    1
    2
    $ sudo /etc/init.d/caddy start
    $ sudo /etc/init.d/caddy enable

配置caddy反向代理

使用通配占位符没有成功,还在研究之中。

总结

主要是内网有https的需求,以及反向代理的易用性。

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep