(转载)openwrt nginx

ln -s  ../../../feeds/packages/net/fcgiwrap/ fcgiwrap

  

本帖最后由 cjd6568358 于 2018-6-4 11:21 编辑


刚又把路由器重置从新操做了一遍流程,确认无误后整理了教程(
有人问为何要把uhttpd换成nginx?
一、首先uhttpd运行缓慢
二、也有用lighttpd代替的,速度还能够可是他的反向代理只支持IP不支持域名
三、有想要在路由器上面建站的大多数用的是php,不想同时开启多个web服务器,nginx恰好能够知足个人一切需求
)

使用nginx代替uhttpd

一、禁用uhttpd(防止安装nginx后自动运行出现端口冲突)
/etc/init.d/uhttpd stop
/etc/init.d/uhttpd disable
复制代码

二、安装依赖
opkg install libpcre nginx spawn-fcgi fcgi fcgiwrap
复制代码

注意:nginx默认是不能够直接执行cgi的(luci的运行方式就是cgi),可是能够代理fcgi,因此这里咱们须要用fcgiwrap来包装下luci的cgi
fcgiwrap运行依赖spawn-fcgi和fcgi,这两个均可以在对应的安装源找到,可是fcgiwrap官方源貌似没有,须要编译。这里给出源代码地址和编译方式,各位有能力的能够试试
fcgiwrap
在OpenWrt上移植fcgiwrap为nginx提供cgi支持

我用的fcgiwrap版本恰好论坛里有人编译出来了,因此直接用的他的,平台是MT7620,HG255D也可用
PS:这个版本的fcgiwrap整合了shell脚本,因此若是用了这个版本的第四步不须要了,改为修改/etc/init.d/fcgiwrap start_service方法
start_service() {
        echo -e "Starting $NAME ..."
        #procd_set_param command $SPAWN_FCGI -u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -P $PIDFILE -F $FORK_NUM -f $DAEMON
        $SPAWN_FCGI -a 127.0.0.1 -p 9000 -f $DAEMON -F $FORK_NUM
}
复制代码

对应的启动脚本
/etc/init.d/fcgiwrap start
/etc/init.d/fcgiwrap restart
复制代码


三、修改/etc/nginx/nginx.conf
server {
    listen       80;
    server_name  localhost;
    charset UTF-8;
    # access_log  /tmp/access_80.log  main;
    # error_log   /tmp/error_80.log debug;
    autoindex on;
    root   /www;
    location ~* /cgi-bin/luci.* {
        root /www;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index /cgi-bin/luci;
        
        fastcgi_split_path_info  (/cgi-bin/luci)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
复制代码


四、启动spawn-fcgi(如需开机自动运行,可将命令添加到/etc/rc.local)
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/sbin/fcgiwrap -F 2
复制代码


五、启动nginx
/etc/init.d/nginx enable
/etc/init.d/nginx start
复制代码


六、移除uhttpd
opkg remove uhttpd
复制代码

到了这一步就能够打开浏览器输入192.168.1.1正常访问luci管理页面了
相关文章
相关标签/搜索