OpenWrt 利用 Nginx 反向代理访问 Luci

OpenWrt 的 Luci 是使用 Lua 编写的 Web 管理界面,可以让我们轻松的配置 OpenWrt,大幅降低了使用难度。

既然是 Web 管理界面,那就需要 HTTP 服务让用户访问,Luci 默认使用的是 uhttpd,但 uhttpd 并不是什么高性能的 HTTP 服务器,扩展性比较差。

但有时候我们可能会在 OpenWrt 搭建其他 Web 环境,比如之前教大家搭建私有云存储,使用 Nginx + PHP 环境,这就导致了 Nginx 和 uhttpd 使用了两个端口,访问有些麻烦。

Nginx 是一个扩展性很强的 HTTP 服务器,不过并不支持 CGI,无法直接运行 Luci,但是 Nginx 支持反向代理,可以让 Nginx 把 Luci 请求反向代理给 uhttpd,这样方便访问和管理。

OpenWrt Nginx Luci

配置 Nginx 反向代理

更改 Nginx 和 uhttpd 端口,更改方法参考搭建私有云存储的文章,Nginx 更改为 80,uhttpd 随意,更改完成后,重启 uhttpd /etc/init.d/uhttpd restart

编辑文件:/etc/nginx/nginx.conf

location / {
root /mnt/sda1/www;
index index.html index.htm index.php;
}

# 在下方加入

location /luci/ {
client_max_body_size 128m;
proxy_pass http://127.0.0.1:端口/luci/;
}

location /luci-static/ {
alias /www/luci-static/;
}

以上配置需要安装软件包:uhttpd-mod-lua,如果没有安装,请使用以下配置:

location = /luci {
return 302 http://$host/cgi-bin/luci/;
}

location /cgi-bin/luci/ {
client_max_body_size 128m;
proxy_pass http://127.0.0.1:端口/cgi-bin/luci/;
}

location /luci-static/ {
alias /www/luci-static/;
}

修改完成后,重启 Nginx /etc/init.d/nginx restart,访问 192.168.1.1/luci,是不是完美的 Luci 界面!

如果搭建了 KodExplorer,可以将 Luci 固定到顶部菜单,这样在使用 KodExplorer 的时候可以方便访问 Luci。

KodExplorer

OpenWrt Luci

有一点

由于 Luci 使用的是 CGI,Nginx 无法直接运行它,我试了好多种方法都不行,如果小伙伴们有方法让 Nginx 直接运行 Luci,可以在下方留言给我。

微信公众号二维码

微信扫描二维码关注我们

点赞

  1. Red_A说道:

    又试了试,在www下新建一个文件夹在里面放网页就可以正常访问了,192.168.2.1/xxx/xxx.html,这样子

    Google Chrome 73.0.3683.86 Google Chrome 73.0.3683.86 Windows 10 x64 Edition Windows 10 x64 Edition
  2. Red_A说道:

    楼主,可不可以问一下,设置完之后该往那里上传自己的网页文件呢,我上传到根目录www访问就显示404 :cry:

    Google Chrome 73.0.3683.86 Google Chrome 73.0.3683.86 Windows 10 x64 Edition Windows 10 x64 Edition
  3. 萧丶默说道:

    nginx-mod-luci

    Google Chrome 70.0.3514.0 Google Chrome 70.0.3514.0 Windows 10 x64 Edition Windows 10 x64 Edition
    1. sen说道:

      编译很是痛苦,还是本文来的简单方便

      Google Chrome 73.0.3683.75 Google Chrome 73.0.3683.75 Windows 10 x64 Edition Windows 10 x64 Edition

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据