固件版本 iStoreOS 21.02.3 2023042111
內(nèi)核版本 5.4.188
nginx/1.19.6 (x86_64-pc-linux-gnu)
istoreOS默認(rèn)采用uhttpd,拋開(kāi)體積效率不談,uhttpd有個(gè)最大的問(wèn)題——無(wú)法反代。于是乎采用nginx替換uhttp作為web服務(wù)器。
網(wǎng)上的教程有不少已經(jīng)過(guò)時(shí)了,比如有說(shuō)nginx不支持cgi的需要如何如何設(shè)置的,有說(shuō)用了nginx之后魔法失效的,有說(shuō)更改uhttpd端口讓它和nginx共存的等等。今天從2024年4月2日開(kāi)始,此處開(kāi)啟一個(gè)船新版本,拋開(kāi)uhttpd只用nginx。
1. nginx安裝
很簡(jiǎn)單一條命令搞定
opkg update && opkg install luci-nginx luci-ssl-nginx
2. nginx啟動(dòng)
安裝完 系統(tǒng)>啟動(dòng)項(xiàng) 里面uhttp應(yīng)該是已禁用,nginx是已啟用的狀態(tài)了。


此時(shí)還要一個(gè)操作,本地啟動(dòng)腳本里加入如下2句,否則istoreos一旦重啟你就會(huì)悲催的發(fā)現(xiàn)網(wǎng)頁(yè)再也打不開(kāi)了。
nginx
/etc/init.d/nginx restart

踩坑
1.nginx啟動(dòng)時(shí)會(huì)提示找不到nginx.conf文件
不知道具體原因,猜測(cè)是魔改的luci-nginx和nginx兼容性的問(wèn)題。解決的辦法就是隨便拷貝一個(gè)nginx.conf到/etc/nginx路徑下。之后可以在此文件中寫配置。
2.nginx的啟動(dòng)log可以在狀態(tài)>系統(tǒng)日志中看

有時(shí)候會(huì)發(fā)現(xiàn)監(jiān)聽(tīng)80,443端口失敗導(dǎo)致nginx無(wú)法啟動(dòng)。這是因?yàn)閡httpd沒(méi)有關(guān)閉導(dǎo)致的。去 系統(tǒng)>啟動(dòng)項(xiàng)中停止或者殺進(jìn)程。
3.魔改luci-nginx的配置在/etc/config/nginx中,nginx啟動(dòng)之后會(huì)在/etc/nginx下自動(dòng)生成一個(gè)uci.conf。這個(gè)默認(rèn)配置里包含了監(jiān)聽(tīng)了80,443端口。這就是為什么有些人沒(méi)有在nginx.conf設(shè)定80,443,而日志中卻發(fā)現(xiàn)nginx去監(jiān)聽(tīng)了80,443的原因。每次啟動(dòng)uci.conf都會(huì)初始化,不改動(dòng)/etc/config/nginx是沒(méi)用的!
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手動(dòng)啟動(dòng)命令
#和啟動(dòng)項(xiàng)中添加的一樣
nginx
/etc/init.d/nginx restart
最后,建議在配置完nginx之后reboot一下系統(tǒng),看看能不能正常生效。