WAF 的更新是一个比较容易出问题的地方,接下来我将一步步说明我们具体更新的操作
### 更新 openresty
#### 脚本更新
运行 ./openstar.sh 脚本;选择 2 ,使用脚本自动更新;
更新完成后,还需要运行 8 ;
#### 手动更新
~~~bash
# 下载相关包 以 1.19.9.1
mkdir -p /opt/down/ && cd /opt/down
# 下载自己需要更新的 openresty 版本
wget https://openresty.org/download/openresty-1.19.9.1.tar.gz
# 安装过,下面的可以不用下载了
# wget http://luarocks.org/releases/luarocks-3.2.1.tar.gz
# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
# git clone --depth=1 https://github.com/leev/ngx_http_geoip2_module.git
# 解压文件
tar -xvf openresty-1.19.9.1.tar.gz
# 编译安装
./configure --prefix=/opt/openresty/ \
--add-module=/opt/down/ngx_http_geoip2_module \
--add-module=/opt/down/ngx_cache_purge-2.3 \
--with-ld-opt='-ljemalloc' \
--with-debug \
--with-threads \
--without-luajit-gc64 \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_slice_module \
--with-http_v2_module
gmake && gmake install
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
chown nobody:nobody -R /opt/openresty/
cd /opt/openresty/
chown root:nobody nginx/sbin/nginx
chmod 751 nginx/sbin/nginx
chmod u+s nginx/sbin/nginx
cat /etc/profile |grep "openresty" ||(echo "PATH=/opt/openresty/nginx/sbin:\$PATH" >> /etc/profile && source /etc/profile)
~~~
更新完成后,还需要运行 openstar.sh ;
选择 8 ;
### 更新 openstar
#### 脚本更新
**说明:**我们更新 WAF ,对于的目录 /opt/openresty/openstar/ 会备份老的到 /opt/openresty/openstar.bak/
运行 ./openstar.sh 脚本;选择 4 ,使用脚本自动更新;接下来我们需要根据自己的实际情况选择了;
0:保留 nginx.conf waf.conf waf规则(conf\_json/.\*)
解释:就是把 /opt/openresty/openstar.bak/conf/nginx.conf waf.conf 和 /opt/openresty/openstar.bak/conf\_json/\* 复制到 /opt/openresty/openstar/ 对应目录中
比如你原来修改了很多 nginx.conf waf.conf 的配置文件的东西,以及添加了很多自己的规则,省的在写一次,我们就覆盖复制过去就好了;
1:保留 waf规则(conf\_json/.\*)
解释:就是把 /opt/openresty/openstar.bak/conf\_json/\* 复制到 /opt/openresty/openstar/ 对应目录中 ;
比较你修改了很多规则;我们就覆盖复制过去就好了;
2:保留 nginx.conf waf.conf
解释:就是把 /opt/openresty/openstar.bak/conf/nginx.conf waf.conf 复制到 /opt/openresty/openstar/ 对应目录中 ;
比如 nginx.conf 、waf.conf 配置文件你变动的比较多,我们就覆盖复制过去就好了;
3:保留 \[base(s) admin\_Mod nginx\_Mod certs\_Mod (s)plugin\_Mod\].json info.lua
解释:就是把 /opt/openresty/openstar.bak/conf\_json/base|admin\_Mod|nginx\_Mod|certs\_Mod|(s)plugin\_Mod.json 和 /opt/openresty/openstar.bak/api/v2/system/info.lua 复制到 /opt/openresty/openstar/ 对应目录中 ;
base.json 文件存放了集群相关配置(cluster / Master ip 、redis 配置信息等);
admin\_Mod 存放了登陆后台的用户名、密码;
nginx\_Mod 存放了添加的域名配置数据;
certs\_Mod 存放了添加的证书数据;
plugin\_Mod 存放了插件相关数据;
正常情况下我们选择 3 即可;
更新完成后,还需要运行 8 ;
如果一些配置丢失,我们就到服务器上,将相关配置复制过去即可。
#### 手动更新
~~~bash
cd /opt/openresty/
git clone --depth=1 https://github.com/op-sec-team/releases-openstar-Enterprise
cp -Rf /opt/openresty/openstar /opt/openresty/openstar.bak
cp -Rf ./releases-openstar-Enterprise/openstar /opt/openresty/
cp -Rf ./releases-openstar-Enterprise/view-private /opt/openresty/nginx/html/
chown nobody:nobody -R /opt/openresty/openstar
chown nobody:nobody -R /opt/openresty/nginx/html/view-private
~~~
相关配置恢复(仅在 Master 服务器下操作即可)
~~~bash
# 恢复集群相关配置
cp -f /opt/openresty/openstar.bak/conf_json/base.json /opt/openresty/openstar/conf_json/
# 恢复登陆后台的配置信息
cp -f /opt/openresty/openstar.bak/conf_json/admin_Mod.json /opt/openresty/openstar/conf_json/
# 恢复添加的域名配置信息
cp -f /opt/openresty/openstar.bak/conf_json/nginx_Mod.json /opt/openresty/openstar/conf_json/
cp -f /opt/openresty/openstar.bak/conf_json/certs_Mod.json /opt/openresty/openstar/conf_json/
# 基本上我们恢复这些数据就够用了
# 其他的数据更具实际情况我们看是否需要恢复
~~~
执行 openstar.sh 运行 8 ;
- kcon 兵器谱
- 演示 1
- 演示 2
- 演示 3
- 演示 4
- 演示 5
- 前言
- 安装
- 更新
- 登录后台
- 授权认证
- 集群配置
- 7层防护 -- 最佳实践
- 匹配位置说明
- 匹配方式说明
- 规则匹配详解
- 全局 - CDN规则
- 添加header头配置
- 限速limit配置
- 缓存proxy_cache配置
- 清除缓存
- 全局 - 获取真实IP配置
- 全局 - IP黑白名单
- 全局 - 域名方法配置(白名单)
- 全局 - 跳转规则配置
- 全局 - 高级规则配置
- 全局 - 普通规则配置
- 全局 - 频率规则配置
- 全局 - 内容替换规则
- 内容替换规则(插件使用)
- 全局 - 拦截信息配置
- 全局 - LOG规则配置
- 平台配置
- 基本配置
- 高级配置
- 配置文件管理
- 4 层代理
- 转发配置
- 插件管理
- 防护配置
- 网站管理
- 证书管理
- 域名管理
- 网站规则
- 插件管理
- 插件操作 --- 基本使用
- 插件操作 --- 手机号脱敏插件
- 归档
- 更新日志
- 视频教程目录