当前位置: 首页 > 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

相关文章:

openwrt-安装NGINX

openwrt-安装NGINX 介绍 OpenWrt 是一个用于嵌入式设备的开源操作系统。它基于 Linux 内核,并且主要被设计用于路由器和网络设备。 OpenWrt 的主要特点包括: 完全可定制:OpenWrt 提供了一个完全可写的文件系统,用户可以自定义设…...

Linux安装MongoDB数据库并内网穿透在外远程访问

文章目录 前言1.配置Mongodb源2.安装MongoDB数据库3.局域网连接测试4.安装cpolar内网穿透5.配置公网访问地址6.公网远程连接7.固定连接公网地址8.使用固定公网地址连接 转发自CSDN cpolarlisa的文章:Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接「内网穿透…...

flutter系列之:使用AnimationController来控制动画效果

文章目录 简介构建一个要动画的widget让图像动起来总结 简介 之前我们提到了flutter提供了比较简单好用的AnimatedContainer和SlideTransition来进行一些简单的动画效果,但是要完全实现自定义的复杂的动画效果,还是要使用AnimationController。 今天我…...

golang 函数调用栈笔记

一个被函数在栈上的情况:(栈从高地址向低地址延伸) 返回地址(函数执行结束后,会跳转到这个地址执行) BP(函数的栈基)局部变量返回值(指的是函数返回值,eg&am…...

云端一体助力体验升级和业务创新

随着音视频和AI技术的发展,在满足用户基础体验和需求情况下,更极致的用户体验和更丰富的互动玩法,成为各个平台打造核心竞争力的关键。LiveVideoStackCon 2022 北京站邀请到火山引擎视频云华南区业务负责人——张培垒,基于节跳动音…...

【Linux Network】高级IO

目录 前言 五种IO模型 阻塞IO 非阻塞IO 信号驱动IO IO多路转接 异步IO 小结 同步通信 vs 异步通信 阻塞 vs 非阻塞 其他高级IO 非阻塞IO fcntl函数 代码测试 高级IO🌷 前言 IO:所谓的I便是 input,所谓的O便是 output,简单点来说&a…...

Python语言基本控制结构

Python语言基本控制结构包括:条件语句:if、elif、else 循环语句:for、while 跳转语句:break、continue、return 下面是它们的基本用法: 条件语句 if condition1: statement1 elif condition2: statement2 else: stat…...

旅游网站版面设计方案

门户网站的页面设计:采用天蓝色为主色调、以红色、绿色为基调,突出网站的青春活波性。 网站风格尽量简单统一、容易让大多数上网者接受,个性化的网站,再者,网站有主体信息结构及布 word . . . . 局,它是总体…...

sudo unable to open read-only file system”的原因

此错误是由多种原因引起的,包括: 文件系统不一致。文件系统配置错误(/etc/fstab 文件中的错误条目)。由于各种原因(包括突然断电或电缆损坏)导致系统意外或突然关闭。在某些情况下,Windows 的双…...

Dynamics 365 DevOps CI/CD之WebResource

对于D365自身的发布,简单点来说就是Solution的发布,复杂一些会涉及周边集成接口等一系列的发布。如果是单纯的Solution的发布的Azure DevOps商店里有很多工具,比如Power DevOps Tools,这个我之前也有博文转载过相关文章&#xff0…...

Linux常用指令及基础配置

Linux常用指令及基础配置 Linux系统操作指令文件管理指令系统设置相关指令addr2line的运用 vim相关vim配置操作Vim功能操作分屏擦操作删除操作换行符转换操作:文件比较合并操作折叠指令 Linux系统操作指令 文件管理指令 find ./ -iname filename find ./ -name “…...

Linux 服务器上Nvidia相关指令

1、GPU驱动的内存常驻模式 1)操作命令: 确保你具有root或sudo权限,以执行下面的命令。打开终端或命令行界面。运行以下命令来设置GPU驱动的内存常驻模式: nvidia-smi -pm 1这会将GPU驱动程序设置为内存常驻模式。 4. 验证设置是否成功。运…...

ChatGPT的工作原理是什么?

ChatGPT是美国OpenAI研发的聊天机器人程序,2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话。 ChatGPT的原理 ChatGPT是一种基于人工智能技术的自然语言生成模型,它能够从大量…...

C++进阶——红黑树

C进阶——红黑树 概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过 对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩 倍&…...

什么是NTFS for Mac?2023新版本如何下载

在NTFS for Mac中包含了多种功能操作,促进软件更好地使用,可以进行全局设置,也可以针对某一各挂载的磁盘进行针对性设置。 本集小编主要向大家介绍它包含的一些基本功能,看看这款mac读写工具能够实现那些功能,全面了解…...

Python泰裤辣丨520写一个自动换壁纸软件,将女友照骗放进去送给她

Python泰裤辣!520写一个自动换壁纸软件,将女友照骗放进去送给她! 准备工作1、环境2、使用的模块3、如何配置pycharm里面的python解释器?4、pycharm如何安装插件? 代码实战1、获取壁纸 自动更换壁纸程序最后 话说兄弟们,今天520你们都送给女朋友啥礼物了…...

CMake: 设置编译选项

CMake: 设置编译选项 导言编译器选项相关概念编译器选项设置补充 导言 上一篇我们学习了构建类型的相关内容,并且可以生成了不同构建类型的库,这一篇我们将介绍编译器选项的相关内容。 编译器选项相关概念 编译器选项是指在编译程序时,可以…...

美团Java开发一面凉经

目录 1.HashMap底层数据结构2.列举几个常见的线程安全容器3.HashMap线程问题4.concurrentHashMap5.ConcurrentModificationException6.Spring AOP、IOC、DI介绍下7.不使用依赖注入,使用传统方式的声明会有什么问题8.最左前缀原则9.TCP三次握手、四次挥手 1.HashMap底…...

Java面试知识点(全)-spring面试知识点二

Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 Spring 事物 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作&…...

【音视频开发】基础知识:视频封装格式和编码格式

文章目录 一、封装格式与编码格式的关系视频编码格式视频封装格式MP43GPRM、RMVBAVI、WMVVOBFLVMKVWebMMOVTS 封装格式与编码格式对应 一、封装格式与编码格式的关系 视频编码格式和视频封装格式的关系及区别 这两者的关系好比酒与酒瓶的关系,编码格式好比酒瓶里的…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...