美文网首页
istoreOS中用nginx替换uhttpd踩坑记录

istoreOS中用nginx替换uhttpd踩坑记录

作者: 小伙比较帅呆 | 来源:发表于2024-04-01 21:59 被阅读0次

固件版本 iStoreOS 21.02.3 2023042111
内核版本 5.4.188
nginx/1.19.6 (x86_64-pc-linux-gnu)


istoreOS默认采用uhttpd,抛开体积效率不谈,uhttpd有个最大的问题——无法反代。于是乎采用nginx替换uhttp作为web服务器。
网上的教程有不少已经过时了,比如有说nginx不支持cgi的需要如何如何设置的,有说用了nginx之后魔法失效的,有说更改uhttpd端口让它和nginx共存的等等。今天从2024年4月2日开始,此处开启一个船新版本,抛开uhttpd只用nginx。

1. nginx安装

很简单一条命令搞定

opkg update && opkg install luci-nginx luci-ssl-nginx

2. nginx启动

安装完 系统>启动项 里面uhttp应该是已禁用,nginx是已启用的状态了。

屏幕截图 2024-04-02 210704.png 屏幕截图 2024-04-02 210715.png

此时还要一个操作,本地启动脚本里加入如下2句,否则istoreos一旦重启你就会悲催的发现网页再也打不开了。

nginx
/etc/init.d/nginx restart
屏幕截图 2024-04-02 211129.png

踩坑

1.nginx启动时会提示找不到nginx.conf文件
不知道具体原因,猜测是魔改的luci-nginx和nginx兼容性的问题。解决的办法就是随便拷贝一个nginx.conf到/etc/nginx路径下。之后可以在此文件中写配置。

2.nginx的启动log可以在状态>系统日志中看

屏幕截图 2024-04-02 211632.png

有时候会发现监听80,443端口失败导致nginx无法启动。这是因为uhttpd没有关闭导致的。去 系统>启动项中停止或者杀进程。

3.魔改luci-nginx的配置在/etc/config/nginx中,nginx启动之后会在/etc/nginx下自动生成一个uci.conf。这个默认配置里包含了监听了80,443端口。这就是为什么有些人没有在nginx.conf设定80,443,而日志中却发现nginx去监听了80,443的原因。每次启动uci.conf都会初始化,不改动/etc/config/nginx是没用的!

4.不要手贱删除/etc/nginx/uci.conf.template,这是生成uci.conf的模板文件,删了的话就重装nginx吧

#这是删除命令
opkg list_installed
opkg remove luci-ssl-nginx
opkg remove luci-nginx
opkg remove nginx

5.nginx手动启动命令

#和启动项中添加的一样
nginx
/etc/init.d/nginx restart

最后,建议在配置完nginx之后reboot一下系统,看看能不能正常生效。

相关文章

网友评论

      本文标题:istoreOS中用nginx替换uhttpd踩坑记录

      本文链接:https://www.haomeiwen.com/subject/oowitjtx.html