参考

官方:https://openwrt.org/docs/guide-user/services/webserver/nginx

其他:https://www.cnblogs.com/jackadam/p/16012498.html

OpenWrt安装nginx

image-20221102122519603

nginx相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/etc/init.d/nginx 命令

可用命令:
start 启动服务
stop 停止服务
restart 重新启动服务
reload 重新加载配置文件(如果服务未实现重新加载,则重新启动)
enable 启用服务自动启动
disable 禁用服务自动启动
enabled 检查服务是否在启动时启动
relog 重新打开日志文件(不重新加载)
running 检查服务是否正在运行
status 服务状态
trace 从系统调用跟踪开始

nginx配置文件

OpenWrt 中 Nginx配置文件默认动态加载

nginx-conf

模板位置:/etc/nginx/ 中的uci.conf.template,该模板中的 server模块从/etc/config/中的nginx文件中加载

OpenWrt默认开启自签名证书,当nginx重启时,会检测是否有证书,如果没有,则创建证书

nginx重启后,配置文件也会重新加载,所以,如果需要配置额外的服务,建议在/etc/nginx/conf.d/下面新建以.conf结尾的文件,nginx配置文件自动会自动加载该目录下面的配置文件include conf.d/*.conf。配置文件内容示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen 端口 ssl;
server_name localhost;

# ssl证书地址
ssl_certificate 你的 crt/pem 文件; # crt/pem文件的路径
ssl_certificate_key 你的key文件; # key文件的路径

# ssl验证相关配置
ssl_session_timeout 5m; #缓存有效期
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #安全链接可选的加密协议
ssl_prefer_server_ciphers on; #使用服务器端的首选算法

location / {
root 静态资源路径;
index index.html index.htm;
}
}

关闭nginx自签名

修改/etc/config/中的nginx文件

202211021459023

nginx-restrict_locally

restrict_locally类似于白名单,配置访问策略,位置在/etc/nginx/

1
2
3
4
5
6
7
8
9
10
11
allow ::1;
allow fc00::/7;
allow fec0::/10;
allow fe80::/10;
allow 127.0.0.0/8;
allow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.0/16;
allow 169.254.0.0/16;
allow 0.0.0.0/0; # 这一行是自己加上去的,代表允许所有IP进行访问
deny all;