🌏Openwrt玩转Nginx配置

type
status
date
tags
slug
summary
category
icon
password
date (1)
😀
Nginx是一个高性能的HTTP和反向代理服务器哦! 在OpenWRT里,它也超级好用的!编译的时候,记得在LuCI里勾选上luci-nginxluci-ssl-nginx,然后就能通过uci命令轻松管理啦!💫

📚 UCI篇

UCI命令就像是魔法咒语一样,让我们可以控制OpenWRT的配置哦!(๑˃̵ᴗ˂̵)و 下面是UCI命令的一些常用咒语:
命令
说明
batch
进入批处理模式,允许连续执行多个 UCI 命令。
export [<config>]
导出指定配置文件的内容(默认为所有配置文件)。
import [<config>]
导入指定配置文件的内容(默认为所有配置文件)。
changes [<config>]
显示指定配置文件的未提交更改(默认为所有配置文件)。
commit [<config>]
提交指定配置文件的更改(默认为所有配置文件)。
add <config> <section-type>
添加一个新的节(section)到指定配置文件中。
add_list <config>.<section>.<option>=<string>
将字符串添加到指定选项的列表中。
del_list <config>.<section>.<option>=<string>
从指定选项的列表中删除字符串。
show [<config>[.<section>[.<option>]]]
显示指定配置文件、节或选项的内容(默认为所有配置文件)。
get <config>.<section>[.<option>]
获取指定配置文件、节或选项的值。
set <config>.<section>[.<option>]=<value>
设置指定配置文件、节或选项的值。
delete <config>[.<section>[[.<option>][=<id>]]]
删除指定配置文件、节或选项。
rename <config>.<section>[.<option>]=<name>
重命名指定配置文件、节或选项。
revert <config>[.<section>[.<option>]]
撤销指定配置文件、节或选项的未提交更改。
reorder <config>.<section>=<position>
重新排序指定节的顺序。
apply [<config>]
提交更改并应用配置(通常用于自动重启服务)。
reload [<config>]
重新加载指定配置文件(通常用于重新加载服务配置)。
status [<config>]
显示指定配置文件的状态(通常用于检查服务是否运行)。
start [<config>]
启动指定配置文件对应的服务。
stop [<config>]
停止指定配置文件对应的服务。
restart [<config>]
重启指定配置文件对应的服务。
命令选项
说明
c <path>
设置配置文件的搜索路径(默认是 /etc/config)。
p <path>
添加配置更改文件的搜索路径。
P <path>
添加配置更改文件的搜索路径并设为默认。
q
安静模式(不显示错误信息)。
s
强制严格模式(遇到解析错误就停止)。
S
禁用严格模式。
f
强制模式(覆盖已存在的配置文件)。
m
合并模式(将导入的内容与现有配置合并)。
n
显示配置文件的名称(而不是内容)。
N
显示配置文件的名称和路径(而不是内容)。
o <file>
将输出重定向到指定文件。
O <file>
将输出重定向到指定文件并覆盖现有内容。
r <path>
设置配置文件的根路径(默认是 /etc/config)。
R <path>
设置配置文件的根路径并设为默认。
t <type>
设置节类型(用于 add 命令)。
T <type>
设置节类型并设为默认(用于 add 命令)。
u
显示未提交的更改(与 changes 类似)。
v
详细模式(显示更多信息)。
V
显示 UCI 工具的版本信息。
💡 可爱小贴士:Nginx的默认设置是通过uci.conf文件控制的哦,不过这个文件不能直接编辑呢!要用我们的秘密武器——UCI命令!(≧∇≦)ノ

🔍 检查Nginx配置 🔍

想看看Nginx现在的配置吗?用uci show nginx这个咒语!(ノ◕ヮ◕)ノ\*:・゚✧

🚀 提交并重启Nginx 🚀

80和443端口被封禁了,所以新服务使用8080端口!(ง •̀ω•́)ง✧
  1. 添加一个默认的 server 块,拒绝通过:8080的所有未匹配域名的请求
    1. 使用下面的命令来添加一个服务
      1. 使用nano /etc/nginx/conf.d/alist.locations创建反代服务
        1. 配置好了,就要提交并让它生效啦!(๑•̀ㅂ•́)و✧
          💡 可爱小贴士:你可以使用nginx -t -c /etc/nginx/uci.conf检查配置

          🎨 其他配置的小秘密 🎨

          想要更多自定义设置?(๑>◡<๑) 看看/etc/nginx/uci.conf.template这个文件!每次Nginx重新加载时,都会根据这个模板生成配置哦!
          设置项
          说明
          worker_processes
          设置Nginx工作进程的数量,通常设置为auto以自动匹配CPU核心数。
          user
          指定Nginx运行时使用的用户,通常设置为root以确保有足够的权限访问所有资源。
          events
          配置事件模块的参数,通常保持为空或使用默认设置。
          access_log
          控制访问日志的开启与关闭,设置为off可以关闭访问日志以节省资源。
          log_format
          自定义日志格式,可以记录请求方法、URL、状态码、响应大小、请求时间等信息。
          include mime.types
          包含MIME类型文件,用于将文件扩展名映射到MIME类型。
          default_type
          设置默认的MIME类型,通常为application/octet-stream
          sendfile
          启用或禁用sendfile系统调用,用于高效传输文件。
          client_max_body_size
          设置客户端请求体的最大允许大小,超过此大小的请求将被拒绝。
          large_client_header_buffers
          设置用于读取大型客户端请求头的缓冲区大小和数量。
          types_hash_bucket_size
          设置MIME类型哈希表的桶大小,影响性能。
          server_names_hash_bucket_size
          设置服务器名称哈希表的桶大小,影响性能。
          gzip
          启用或禁用Gzip压缩,用于减少传输数据量。
          gzip_vary
          启用或禁用Vary响应头,通知代理服务器根据请求头进行压缩。
          gzip_proxied
          设置哪些类型的代理请求可以进行Gzip压缩。
          gzip_min_length
          设置进行Gzip压缩的最小文件大小。
          gzip_comp_level
          设置Gzip压缩级别,值越高压缩率越高但CPU消耗也越大。
          gzip_buffers
          设置Gzip压缩缓冲区的大小和数量。
          gzip_types
          设置哪些MIME类型的文件可以进行Gzip压缩。
          root
          设置网站的根目录,所有请求将从这个目录中提供文件。
          这些设置项可以根据你的需求进行调整,以优化Nginx的性能和功能。
          改好模板后,记得重新加载并重启Nginx哦!(✪ω✪)

          🛠️CA证书篇🛠️

          acme.sh 是一个敲~厉害的开源ACME协议客户端脚本!(๑•̀ㅂ•́)و✧ 它可以帮你轻松申请、安装和自动更新SSL证书,支持超多CA,比如Let's Encrypt、ZeroSSL等等~ 最重要的是,它可以申请免费的泛域名证书哦!以下是acme.sh的常用命令。
          命令
          作用
          acme.sh --list
          查看已签发的证书
          acme.sh --remove -d example.com
          移除不需要的域名
          acme.sh --renew -d example.com --force
          强制刷新证书
          acme.sh --info -d example.com
          查看已安装证书信息
          acme.sh --uninstall
          卸载acme.sh
          acme.sh --upgrade
          手动升级acme.sh
          acme.sh --upgrade --auto-upgrade
          开启自动升级
          acme.sh --upgrade --auto-upgrade 0
          关闭自动升级
          acme.sh --set-default-ca --server letsencrypt
          切换到Let's Encrypt申请泛域名证书
          acme.sh --set-default-ca --server zerossl
          切换到ZeroSSL申请泛域名证书

          💡 小贴士:泛域名证书就像一个万能钥匙🔑,可以用于所有子域名,超级方便!再也不用给每个子域名单独申请证书啦!ヾ(≧∇≦*)ゝ

          🔑acme.sh安装🔑

          打开终端,输入以下命令,就像施展魔法一样简单!🧙‍♀️✨
          或者使用wget
          安装过程中会做这些事情哦:
          • acme.sh脚本放到~/.acme.sh/
          • 创建别名acme.sh=~/.acme.sh/acme.sh方便你使用~
            • 如果没有自动创建别名(提示command not found),可以使用以下命令自行创建:
          • 设置定时任务,让证书自动更新!
            • acme.sh会自动创建定时任务,每天检查证书是否需要续期,你可以用crontab -l查看定时任务哦~若没有,也可以自行添加,定时任务如下:

          🌈 申请泛域名证书 🌈

          终于到了最激动人心的时刻啦!ヾ(≧▽≦*)o
          1. 注册ZeroSSL (默认CA)
            1. 从v3.0开始,acme.sh默认使用ZeroSSL啦! ZeroSSL没有速率限制,还有好用的WEB界面哦~
              需要先访问 ZeroSSL官网 注册并获取EAB凭据,然后使用以下命令注册
              ⚠️ 虽然通过acme.sh申请ZeroSSL证书没有数量限制,但还是要在ZeroSSL官网注册一个账号哦!
          1. 配置DNS API验证
            1. 这种方式最方便,可以自动添加和删除DNS记录,强烈推荐!👍👍👍
              不同的域名服务商获取API Token的方式不一样,请参考官方文档哦~
              这里以Cloudflare为例:
            2. 登录Cloudflare后台,左侧导航栏 管理帐户 -> 帐户API令牌
            3. 点击创建令牌 -> 编辑区域 DNS -> DNS 编辑 -> 区域资源 所有区域
              1. 💡 小贴士:记得把Token保存好哦!只会出现一次!!
            4. 进入网站管理,左侧导航栏 概述 -> 右侧导航栏 API -> 区域ID 帐户ID
            5. 使用DNS API申请泛域名证书
            6. 看到Cert success就表示成功啦!🎉🎉🎉

          ⚙️ 安装证书到服务器 ⚙️

          证书申请好了,要把它安装到服务器才能用哦~ (๑•̀ㅂ•́)و✧
          首先创建本地保存路径 mkdir /etc/acme
          1. 使用 --install-cert 安装 .key 和 .crt 文件:
            1. 使用 --install-cert 安装 .pem 文件:
              1. 💡 小贴士.key.pem 不能同时安装,因为如果路径相同,后执行的命令会覆盖之前的文件。Web服务器建议使用 fullchain.pem 避免一些奇奇怪怪的问题,如果你有特定的需求或配置要求使用 .key 和 .crt 文件,那么可以选择使用这些扩展名。
            1. 设置自动更新

              🖥️ 配置Nginx服务器 🖥️

              最后一步,配置你的Web服务器!(๑•̀ㅂ•́)و✧
              /etc/nginx下创建ssl_params文件:
              然后配置uci并重启nginx:

              🖥️ 套Cloudflare反代IP加速  🖥️

              1. 添加源站:
                1. 首先我们添加一个 AAAA 记录,解析 IPv6 就是我们服务器的真实 IP,并开启小黄云:
                  notion image
              1. 重定向https端口:
                1. Origin Rules中使用SSL/HTTPS将Https端口重定向至源站8080端口:
                  notion image
              1. 获取反代IP
                1. 打开fofa搜索反代IP:
               

               
              💡
              有关安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
               
              Sing-Box的小小白指南!🌟Linux使用socks全局代理教程
              Loading...