🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
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 ;