OpenWrt 利用 Nginx 反向代理访问 Luci

2017-09-21 12951点热度 3人点赞 4条评论

最新的 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,可以在下方留言给我。

微信公众号二维码

微信扫描二维码关注我们

如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。

小山

一个什么都不会但要装作很厉害的人

文章评论

  • Red_A

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

    2019-04-02
  • Red_A

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

    2019-04-02
  • 萧丶默

    nginx-mod-luci

    2019-01-07
    • sen

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

      2019-03-15