(轉載)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管理頁面了
相關文章
相關標籤/搜索