当前位置: 首页 > news >正文

帝国cms登录网站专业网站开发公司

帝国cms登录网站,专业网站开发公司,有哪些好的网站制作公司,南昌商城网站建设背景 由于原来使用的 Nacos 版本#xff08;1.1.4#xff09;存在安全漏洞#xff0c;需要进行升级修复。经过查询后#xff0c;决定将版本升级到2.2.4。 Nacos 服务共有三个#xff1a; 192.168.2.190:8848192.168.2.191:8848192.168.2.192:8848 步骤 服务端升级1.1.4存在安全漏洞需要进行升级修复。经过查询后决定将版本升级到2.2.4。 Nacos 服务共有三个 192.168.2.190:8848192.168.2.191:8848192.168.2.192:8848 步骤 服务端升级不开鉴权客户端升级服务端开启鉴权 说明服务端升级到 2.2.4 版本如果不需要开启鉴权则客户端可以不升级因为配置中心兼容支持 Nacos1.0 起的所有版本客户端服务发现兼容 Nacos1.2 起所有版本客户端。 具体参考https://nacos.io/zh-cn/docs/v2/upgrading/2.0.0-compatibility.htmlFAQ 一、服务端升级 1. 修改 Nginx 代理配置nginx.conf 说明在1.1.4版本时我们对 Nacos 服务端的协议进行了升级即 http - https方式是通过 Nginx 进行代理转发从 8848 转发到 8849 端口。而在 2.2.4 版本的 Nacos 中新增了 gRPC 的通信方式需要新增端口因此这里在 nginx.conf 需要新增一些端口转发配置。 具体参考https://nacos.io/zh-cn/docs/v2/upgrading/2.0.0-compatibility.html新版本部署 # 具体路径以实际为准这里仅供参考 # 若不知道配置文件位置可通过 history 或 find ./ -name nginx.conf 2 /dev/null 命令查找 # 备份配置文件 cp /home/appuser/nginx/conf/nginx.conf /home/appuser/nginx/conf/nginx.conf_20240114_bak# 修改配置文件 vim /home/appuser/nginx/conf/nginx.conf# 在 http{} 同层级下添加以下内容 stream {upstream nacos-tcp {# IP 与所在服务器需对应server 192.168.2.190:9849;}server {listen 9848;proxy_pass nacos-tcp;} }# 检查配置修改是否正确 /home/appuser/nginx/sbin/nginx -t# 重新加载配置文件 /home/appuser/nginx/sbin/nginx -s reload2. 执行SQL Nacos 2.x 版本相比 Nacos 1.x 版本数据结构有所变更以下是相应 SQL 脚本 注意SQL 脚本需在新版本启动前执行否则将启动报错 ALTER TABLE nacos_config.config_info ADD encrypted_data_key TEXT NOT NULL COMMENT 秘钥; ALTER TABLE nacos_config.config_info_beta ADD encrypted_data_key TEXT NOT NULL COMMENT 秘钥; ALTER TABLE nacos_config.his_config_info ADD encrypted_data_key TEXT NOT NULL COMMENT 秘钥;CREATE TABLE nacos_config.permissions (role varchar(50) NOT NULL,resource varchar(255) NOT NULL,action varchar(8) NOT NULL,UNIQUE INDEX uk_role_permission (role,resource,action) USING BTREE );3. 修改配置文件 建议直接在本地修改好相应的配置文件之后再压缩上传到服务器避免配置文件修改不一致出现问题。 application.properties### 服务端端口号 server.port8849### 使用数据库类型 spring.datasource.platformmysql db.num1 db.url.0jdbc:mysql://192.168.2.193:3306/nacos_config?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC db.user.0root db.password.0root### 是否开启鉴权这里暂时不开启因为客户端是1.1.4开启后将会导致服务注册不了 nacos.core.auth.enabledfalse### 开启旧版本服务之间的鉴权方式升级完成后关闭 nacos.core.auth.enable.userAgentAuthWhitetrue### 白名单授权用于标识来自其他nacos服务器的请求。根据需要自行修改需要保证每台nacos服务器都是一样配置 nacos.core.auth.server.identity.keyidentityRegexp nacos.core.auth.server.identity.valueidentityRegexp### 用于生成accessToken的密钥根据需要自行修改需要保证每台nacos服务器都是一样配置 # 官方推荐将配置项设置为Base64编码的字符串且原始密钥长度不得低于32字符 nacos.core.auth.plugin.nacos.token.secret.keyaWRlbnRpdHlpZGVudGl0eWlkZW50aXR5aWRlbnRpdHlpZGVudGl0eQcluster.conf192.168.2.190:8848 192.168.2.191:8848 192.168.2.192:88484. 升级服务端依次升级 ## 上传安装包可以通过rz命令或sftp上传 rz## 解压缩 unzip nacos-2.2.4.zip -d /home/appuser## 停止旧服务 sh /home/appuser/nacos-1.1.4/bin/shutdown.sh## 启动新服务 sh /home/appuser/nacos-2.2.4/bin/startup.sh## 查看启动日志 tail -f /home/appuser/nacos-2.2.4/logs/start.out -n 10## 若观察到 mybatis-plus 图标并没有报错即启动成功 ## 登录nacos页面https://192.168.0.190:8848/nacos查看是否正常二、客户端升级 据我了解客户端升级有两种方式 第一种直接升级 Spring Boot、Spring Cloud、Spring Cloud Alibaba 版本第二种升级 Nacos Client 版本并重写源码 由于我们项目比较大 时间紧第一种升级方式的风险比较大故选择第二种方式。 1. 添加依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdexclusionsexclusiongroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactId/exclusion/exclusions /dependency dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdexclusionsexclusiongroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactId/exclusion/exclusions /dependency dependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactIdversion2.2.4/version /dependency dependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-common/artifactIdversion2.2.4/version /dependency2. 添加配置 bootstrap.yml spring:cloud:nacos:discovery:username: nacospassword: nacosconfig:username: nacospassword: nacoscontextPath: /nacos3. 重写 Nacos 客户端源码 重写方式在项目的 java 目录下新建需重写类所在的包路径然后复制源码到该路径下并进行修改比如NacosDiscoveryProperties 类所在包路径为 com.alibaba.cloud.nacos则在 java 目录下新建该包然后复制源码 NacosDiscoveryProperties.java public class NacosDiscoveryProperties {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public Properties getNacosProperties() {properties.put(USERNAME, Objects.toString(username, ));properties.put(PASSWORD, Objects.toString(password, ));} }NacosConfigProperties.java public class NacosConfigProperties {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public Properties getConfigServiceProperties() {properties.put(USERNAME, Objects.toString(username, ));properties.put(PASSWORD, Objects.toString(password, ));} }由于我们所用的 Nacos 使用的是 https 协议所以还需要重写 ServerHttpAgent 和 NacosRestTemplate 以支持 SSL。 ServerHttpAgent.java public class ServerHttpAgent implements HttpAgent {public static final String HTTP http://;public static final String HTTPS https://;private static final boolean isSSL ObjectUtils.isEmpty(System.getProperty(nacos.ssl.enable))|| Boolean.parseBoolean(System.getProperty(nacos.ssl.enable));static {if (isSSL) {try {TrustManager[] managers new TrustManager[1];managers[0] new TrustAllManager();SSLContext sc SSLContext.getInstance(SSL);sc.init(null, managers, null);HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());HttpsURLConnection.setDefaultHostnameVerifier((urlHostName, session) - true);} catch (Exception e) {LOGGER.error(trust all https certificates fail, e);}}}public static class TrustAllManager implements X509TrustManager {Overridepublic void checkClientTrusted(X509Certificate[] x509Certificates, String s) {}Overridepublic void checkServerTrusted(X509Certificate[] x509Certificates, String s) {}Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}}private String getUrl(String serverAddr, String relativePath, boolean isSSL) {String contextPath serverListMgr.getContentPath().startsWith(/) ?serverListMgr.getContentPath() : / serverListMgr.getContentPath();String url StringUtils.removeEnd(serverAddr, /) / StringUtils.removeStart(contextPath, /) relativePath;if (isSSL url.startsWith(HTTP)) {return HTTPS StringUtils.removeStart(url, HTTP);} else {return url;}} }NacosRestTemplate.java public class NacosRestTemplate extends AbstractNacosRestTemplate {private static final Logger LOGGER LogUtils.logger(NacosRestTemplate.class);private static final boolean isSSL ObjectUtils.isEmpty(System.getProperty(nacos.ssl.enable))|| Boolean.parseBoolean(System.getProperty(nacos.ssl.enable));static {if (isSSL) {try {TrustManager[] managers new TrustManager[1];managers[0] new ServerHttpAgent.TrustAllManager();SSLContext sc SSLContext.getInstance(SSL);sc.init(null, managers, null);HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());HttpsURLConnection.setDefaultHostnameVerifier((urlHostName, session) - true);} catch (Exception e) {LOGGER.error(trust all https certificates fail, e);}}}public static class TrustAllManager implements X509TrustManager {Overridepublic void checkClientTrusted(X509Certificate[] x509Certificates, String s) {}Overridepublic void checkServerTrusted(X509Certificate[] x509Certificates, String s) {}Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}} }三、服务端开启鉴权 # 编辑配置文件 vim /home/appuser/nacos-2.2.4/conf/application.conf# 找到以下行将 false 修改为 true 即可无需重启 nacos.core.auth.enabledfalse开启之后观察服务日志与 Nacos 日志是否正常
http://www.pierceye.com/news/154068/

相关文章:

  • 最火高端网站设计厂家宁波新亚建设内部网站
  • 娱乐网站建设宁波网站建设多少钱一年
  • app制作器手机版下载网站关键词优化排名怎么做
  • 网站站外优化推广方式网站建设网站需要什么软件有哪些
  • 重庆建设厂招聘信息网站做坑网站需要
  • 光谷 网站建设公司海珠区住房和水务建设局网站
  • 公司做网站还是做appwordpress多文件传递变量
  • 网站教学苏州优化网站
  • 扁平化网站下载网站设计公司深圳
  • flash网站用什么做网站建设免费软件有哪些
  • 卖车网站投资网站建设
  • 网站开发过程 文档合肥婚恋网站建设
  • 网站自助建设目录更新 wordpress
  • 百度给做网站吗flash网站制作教程 下载
  • 化工销售怎么做网站wordpress 论坛功能
  • 网上做平面设计兼职不错的网站网站 seo优化
  • seo做的最好的网站设计专业
  • 顾家家居网站是哪个公司做的东莞软件有限公司
  • 云南做网站哪家好wordpress文章内多页效果
  • 上海做网站公司哪家好建筑公司有哪些部门和职位
  • 用front page2003做网站的导航条网站的站点建设分为
  • 开封网站建设zducmwordpress评论ajax
  • 电脑如何做网站空间西安网站建设sxyun
  • 济南历城区网站建设2022年没封网站直接进入
  • 平面设计和网站建设哪个好icp备案可以自己搞吗
  • 平面电商网站建设初级网页设计
  • 个人购物网站怎么备案数据调查的权威网站
  • 网站规划和建设的基本要求100个无水印短视频素材免费
  • 河北住房和建设厅官方网站如何建设运输网站
  • 网络品牌网站建设价格网站设计部