当前位置: 首页 > news >正文

openwrt-安装NGINX

openwrt-安装NGINX

介绍

OpenWrt 是一个用于嵌入式设备的开源操作系统。它基于 Linux 内核,并且主要被设计用于路由器和网络设备。

OpenWrt 的主要特点包括:

  1. 完全可定制:OpenWrt 提供了一个完全可写的文件系统,用户可以自定义设备的行为。相比其他嵌入式操作系统,OpenWrt 更加灵活和强大。

  2. 软件包管理:OpenWrt 提供了一个内置的包管理系统,用户可以安装或者卸载额外的软件包。这使得用户可以根据需要定制设备的功能。

  3. 丰富的功能:默认情况下,OpenWrt 提供了很多用于网络设备的功能,如防火墙、QoS(服务质量)、IPv6 支持、路由协议支持、VPN、DNS、DHCP 等。

  4. 开源:OpenWrt 是开源的,这意味着任何人都可以查看和修改它的源代码。这使得用户可以定制设备的行为,或者添加新的功能。

  5. 活跃的社区:OpenWrt 有一个活跃的开发和用户社区,用户可以从社区获取帮助,或者分享他们的经验和知识。

这里我需要使用NGINX,接下来介绍如何在openwrt上安装NGINX

安装

查看系统版本

cat /etc/openwrt_release

image-20230520191028133

这段信息是 OpenWRT 系统的版本和硬件信息。解释如下:

  • DISTRIB_ID:这是你的操作系统的名称,这里是 OpenWrt。

  • DISTRIB_RELEASE:这是你的 OpenWrt 版本的发行代号,这里是 SNAPSHOT,表示这是开发版本。

  • DISTRIB_TARGET:这是 OpenWrt 的目标平台或体系结构,这里是 ‘rockchip/armv8’,意味着这个固件是为 rockchip 平台的 ARMv8 架构编译的。

  • DISTRIB_ARCH:这是 OpenWrt 的目标硬件架构,这里是 ‘aarch64_generic’,表示这个固件是为通用的 64 位 ARM 架构编译的。

  • DISTRIB_TAINTS:这是内核的 “污点”,用来表示可能影响内核稳定性或安全性的因素。‘no-all’ 表示没有这样的因素。

  • DISTRIB_REVISION:这是 OpenWrt 的修订版本,这里是 ‘R22.11.13’。

  • DISTRIB_DESCRIPTION:这是 OpenWrt 的描述信息,这里只有 'OpenWrt ',可能是由于这是一个开发快照版本,所以没有更多的描述信息。

使用的是 OpenWrt 的一个开发版本,针对 rockchip 平台的 ARMv8 架构编译,没有任何已知的内核问题。

修改系统镜像源

在国内,由于网络问题,使用海外的软件源可能会比较慢,所以更改为国内的镜像源。这里我使用的是腾讯的镜像源:

vi /etc/opkg/distfeeds.conf

具体内容如下:

src/gz openwrt_core https://mirrors.cloud.tencent.com/openwrt/releases/22.03.0/targets/rockchip/armv8/packages
src/gz openwrt_base https://mirrors.cloud.tencent.com/openwrt/releases/22.03.0/packages/aarch64_generic/base
src/gz openwrt_luci https://mirrors.cloud.tencent.com/openwrt/releases/22.03.0/packages/aarch64_generic/luci
src/gz openwrt_packages https://mirrors.cloud.tencent.com/openwrt/releases/22.03.0/packages/aarch64_generic/packages
src/gz openwrt_routing https://mirrors.cloud.tencent.com/openwrt/releases/22.03.0/packages/aarch64_generic/routing
src/gz openwrt_telephony https://mirrors.cloud.tencent.com/openwrt/releases/22.03.0/packages/aarch64_generic/telephony

最后,更新 opkg 的软件包列表:

opkg update

卸载之前的版本

opkg remove --force-removal-of-dependent-packages nginx-utilopkg remove nginx nginx-util

安装NGINX

opkg install nginx

报错问题

Error relocating /usr/bin/nginx-util: _ZNSt15__exception_ptr13exception_ptr9_M_addrefEv: symbol not found
Error relocating /usr/bin/nginx-util: _ZSt28__throw_bad_array_new_lengthv: symbol not found
Error relocating /usr/bin/nginx-util: _ZNSt15__exception_ptr13exception_ptr10_M_releaseEv: symbol not found
Error relocating /usr/bin/nginx-util: _ZNSsC1ENSs12__sv_wrapperERKSaIcE: symbol not found
Error relocating /usr/bin/nginx-util: _ZNSt15__exception_ptr13exception_ptr9_M_addrefEv: symbol not found
Error relocating /usr/bin/nginx-util: _ZSt28__throw_bad_array_new_lengthv: symbol not found
Error relocating /usr/bin/nginx-util: _ZNSt15__exception_ptr13exception_ptr10_M_releaseEv: symbol not found
Error relocating /usr/bin/nginx-util: _ZNSsC1ENSs12__sv_wrapperERKSaIcE: symbol not found
nginx_init: NOT using conf file!

可能出现这个问题的一个原因是你的设备缺少这个库文件,或者这个库文件的版本和 nginx-util 不兼容。在 C++ 程序中,这些符号通常是由某个 C++ 标准库提供的。从错误信息来看,这些符号看起来是由 C++ 的 std::string 类和 std::__exception_ptr::exception_ptr 类提供的。

opkg remove libstdcpp
opkg update
opkg install libstdcpp

编辑nginx.conf文件

把默认配置文件改名,/etc/nginx/uci.conf改成uci.conf.bak

然后新建一个文件nginx.conf

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       8000;server_name  localhost;location / {root  /data/nginxweb/html;index  index.html index.htm;}}}

启动nginx并加入自动启动

chmod +x /etc/init.d/nginx
/etc/init.d/nginx enable
/etc/init.d/nginx start

效果

这里拷贝了openResty的index.html页面,可以指定为自己的

image-20230520193343065

http://www.lryc.cn/news/69102.html

相关文章:

  • Linux安装MongoDB数据库并内网穿透在外远程访问
  • flutter系列之:使用AnimationController来控制动画效果
  • golang 函数调用栈笔记
  • 云端一体助力体验升级和业务创新
  • 【Linux Network】高级IO
  • Python语言基本控制结构
  • 旅游网站版面设计方案
  • sudo unable to open read-only file system”的原因
  • Dynamics 365 DevOps CI/CD之WebResource
  • Linux常用指令及基础配置
  • Linux 服务器上Nvidia相关指令
  • ChatGPT的工作原理是什么?
  • C++进阶——红黑树
  • 什么是NTFS for Mac?2023新版本如何下载
  • Python泰裤辣丨520写一个自动换壁纸软件,将女友照骗放进去送给她
  • CMake: 设置编译选项
  • 美团Java开发一面凉经
  • Java面试知识点(全)-spring面试知识点二
  • 【音视频开发】基础知识:视频封装格式和编码格式
  • OData Web API 一个开放标准的协议
  • PT100温度采集
  • ThinkSystem DM 全闪存阵列 —— 通过全闪存 NVMe 转型加速您的业务
  • SpringCloud------代码demo(二)
  • TCL语法
  • Partial convolution Gated convolution
  • 量化投资 无套利 No-arbitrage
  • 小程序容器助力智能移动门户统一
  • opencv-python相机标定详解
  • 由斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名
  • PBDB Data Service:Measurements of specimens(标本测量)