更换openwrt默认的web server为nginx

最近拿到一台WRT1900ACSv2,想在路由上面挂站,openwrt上默认的web server是uhttpd,还是想换成更加熟悉的nginx,遂开始了折腾。
先找下这台机器的信息,上网站:https://openwrt.org/toh/views/toh_fwdownload


cpu代号是mvebu,机型代号是shelby,先刷个官方固件,最新的稳定版本是18.06.1
装个nginx,源里面默认版本是1.12.2-1

但是。。。
直接这样把uhttpd停止,把nginx启动是不能用的,默认的nginx无法支持cgi,也就是默认的nginx进不去luci的页面。
搜到一篇文章:
https://right.com.cn/forum/thread-321157-1-1.html
看后面的评论,最新版本的nginx已经有模块支持cgi了,不用按照楼主说的做反向代理。
先去找下官方有没有现成的
https://archive.openwrt.org/snapshots/trunk/mvebu/generic/packages/packages/
居然没有nginx-mod-luci模块,算了,自己编译吧,自食其力。
还是喜欢用完整源代码的环境编译,用sdk的环境直接编译的话每次都死得很难看,老是提示缺少这个缺少那个,烦。
先搞份18.06的代码。
https://github.com/openwrt/openwrt.git
注意选择18.06的分支。
这次系统换成了centos7,要先装下依赖。

yum install ncurses-libs ncurses-devel zlib-devel gawk flex-devel patch gcc gcc-c++ perl subversion git-core unzip bzip2 perl-Thread-Queue wget perl-Thread-Queue openssl-devel zlib-static perl-Data-Dumper

源码目录update&install一下

./scripts/feeds update -a
./scripts/feeds install -a

定制一下固件,主要是选择平台和机型,其他的不用改了。

make menuconfig

一路退出,最后保存一下。
开始编译

make -j4 V=99

新代码现在不用做任何修改,直接无痛编译完成。i5的台式机大概编译半小时能完成。
编译完成后,把最新的nginx代码搞过来。
https://github.com/openwrt/packages.git
在net文件夹可以找到nginx


但是我们要的nginx-mode-luci模块还依赖uwsgi-cgi模块,同样在net目录下

把这2个文件夹拷贝到原来18.06代码的feeds/packages/net目录下
编译一下这2个新模块,因为原来18.06的代码没有uwsgi,所以还是要先install&update一下。

./scripts/feeds update -a
./scripts/feeds install -a

定制一下固件

make menuconfig

选择路径Network-Web Servers/Proxies




可以找到nginx-mod-luci了,我这里是把nginx相关的全勾上(选中为M)。



往下翻,找到uwsgi,全勾上。

一路exit。

开始编译,先编译nginx

make package/feeds/packages/nginx/compile -j5 V=s

再编译uwsgi

make package/feeds/packages/uwsgi-cgi/compile -j5 V=s

几分钟就编译完了。
在bin/packages/arm_cortex-a9_vfpv3/packages文件夹



可以找到我们的东西了!全部装上。
停止原来的uhttpd并disable防止自动启动

/etc/init.d/uhttpd stop
/etc/init.d/uhttpd disable

开启nginx并设置为自动启动

/etc/init.d/nginx enable
/etc/init.d/nginx start

ps一下看看nginx是否已经启动



注意,跟恩山上的那篇教程不同,这里不用对nginx做任何配置,直接访问一下路由ip,熟悉的界面已经回来了。



我们去路由里看下nginx的配置,cd到/etc/nginx

可以看到,nginx-mod-luci模块会自动生成一个新的nginx.conf配置文件,把原来安装nginx自动生成的nginx.conf文件改名变成nginx.conf_old
看下nginx.conf文件内容

user nobody nogroup;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile on;
    keepalive_timeout 0;

    client_body_buffer_size 10K;
    client_header_buffer_size 1k;
    client_max_body_size 1G;
    large_client_header_buffers 2 1k;

    gzip on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 1;
    gzip_proxied any;

    root /www;

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name  localhost;

        location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 365d;
        }

        include luci_uwsgi.conf;

    }

    include /etc/nginx/conf.d/*.conf;
}

我们不用做任何修改,即可让nginx支持cgi,显示luci。
至于挂站,大家对nginx很熟了,不多说了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容

  • Nginx是一个轻量级的,高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器。它运行在UNIX...
    JaeGwen阅读 1,821评论 0 20
  • 前置条件 编译环境:Linuxmint 18.2 64-Bit 路由器型号:TP-LINK TL-WR720N v...
    suanite阅读 20,282评论 2 13
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,837评论 0 5
  • 1.重逢 毕业二十周年聚会。 “嗨!你好!”一个大腹便便的中年男人向她走来。 满面油光,眼神圆滑,略显邋遢,这是?...
    陌上花开0117阅读 431评论 0 0