diff --git a/docs/install_guide/install_guide_nginx_cn.md b/docs/install_guide/install_guide_nginx_cn.md new file mode 100644 index 00000000..ad55f947 --- /dev/null +++ b/docs/install_guide/install_guide_nginx_cn.md @@ -0,0 +1,94 @@ +--- + +![kafka-manager-logo](../assets/images/common/logo_name.png) + +**一站式`Apache Kafka`集群指标监控与运维管控平台** + +--- + +## nginx配置-安装手册 + +# 一、独立部署 + +请参考参考:[kafka-manager 安装手册](install_guide_cn.md) + +# 二、nginx配置 + +## 1、独立部署配置 + +``` + #nginx 根目录访问配置如下 + location / { + proxy_pass http://ip:port; + } +``` + +## 2、前后端分离&配置多个静态资源 + +以下配置解决`nginx代理多个静态资源`,实现项目前后端分离,版本更新迭代。 + +### 1、源码下载 + +根据所需版本下载对应代码,下载地址:[Github 下载地址](https://github.com/didi/Logi-KafkaManager) + +### 2、修改webpack.config.js 配置文件 + +修改`kafka-manager-console`模块 `webpack.config.js` +以下所有xxxx为nginx代理路径和打包静态文件加载前缀,xxxx可根据需求自行更改。 + +``` + cd kafka-manager-console + vi webpack.config.js + + # publicPath默认打包方式根目录下,修改为nginx代理访问路径。 + let publicPath = '/xxxx'; +``` + +### 3、打包 + +``` + + npm cache clean --force && npm install + +``` + +ps:如果打包过程中报错,运行`npm install clipboard@2.0.6`,相反请忽略! + +### 4、部署 + +#### 1、前段静态文件部署 + +静态资源 `../kafka-manager-web/src/main/resources/templates` + +上传到指定目录,目前以`root目录`做demo + +#### 2、上传jar包并启动,请参考:[kafka-manager 安装手册](install_guide_cn.md) + +#### 3、修改nginx 配置 + +``` + location /xxxx { + # 静态文件存放位置 + alias /root/templates; + try_files $uri $uri/ /xxxx/index.html; + index index.html; + } + + location /api { + proxy_pass http://ip:port; + } + #后代端口建议使用/api,如果冲突可以使用以下配置 + #location /api/v2 { + # proxy_pass http://ip:port; + #} + #location /api/v1 { + # proxy_pass http://ip:port; + #} +``` + + + + + + + diff --git a/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/constant/ApiPrefix.java b/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/constant/ApiPrefix.java index a6784204..f193f39d 100644 --- a/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/constant/ApiPrefix.java +++ b/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/constant/ApiPrefix.java @@ -8,10 +8,13 @@ package com.xiaojukeji.kafka.manager.common.constant; public class ApiPrefix { public static final String API_PREFIX = "/api/"; private static final String API_V1_PREFIX = API_PREFIX + "v1/"; - private static final String API_V2_PREFIX = API_PREFIX + "v2/"; + + // login + public static final String API_V1_SSO_PREFIX = API_V1_PREFIX + "sso/"; + public static final String API_V1_SSO_LOGIN = API_V1_SSO_PREFIX + "login"; + public static final String API_V1_SSO_LOGOUT = API_V1_SSO_PREFIX + "logout"; // console - public static final String API_V1_SSO_PREFIX = API_V1_PREFIX + "sso/"; public static final String API_V1_NORMAL_PREFIX = API_V1_PREFIX + "normal/"; public static final String API_V1_RD_PREFIX = API_V1_PREFIX + "rd/"; public static final String API_V1_OP_PREFIX = API_V1_PREFIX + "op/"; diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/ClusterService.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/ClusterService.java index 2feb321b..35c4be8d 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/ClusterService.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/ClusterService.java @@ -4,7 +4,6 @@ import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.ResultStatus; import com.xiaojukeji.kafka.manager.common.entity.ao.ClusterDetailDTO; import com.xiaojukeji.kafka.manager.common.entity.ao.cluster.ControllerPreferredCandidate; -import com.xiaojukeji.kafka.manager.common.entity.dto.op.ControllerPreferredCandidateDTO; import com.xiaojukeji.kafka.manager.common.entity.vo.normal.cluster.ClusterNameDTO; import com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO; import com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterMetricsDO; diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/RegionService.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/RegionService.java index 8ab072fe..40c92a5c 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/RegionService.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/RegionService.java @@ -1,7 +1,6 @@ package com.xiaojukeji.kafka.manager.service.service; import com.xiaojukeji.kafka.manager.common.entity.ResultStatus; -import com.xiaojukeji.kafka.manager.common.entity.dto.rd.RegionDTO; import com.xiaojukeji.kafka.manager.common.entity.pojo.RegionDO; import java.util.List; diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/AdminServiceImpl.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/AdminServiceImpl.java index b49e41a3..26d7ef4d 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/AdminServiceImpl.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/AdminServiceImpl.java @@ -340,10 +340,6 @@ public class AdminServiceImpl implements AdminService { @Override public ResultStatus modifyTopicConfig(ClusterDO clusterDO, String topicName, Properties properties, String operator) { ResultStatus rs = TopicCommands.modifyTopicConfig(clusterDO, topicName, properties); - if (!ResultStatus.SUCCESS.equals(rs)) { - return rs; - } - return rs; } } diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ConsumerServiceImpl.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ConsumerServiceImpl.java index 0d60d828..913316ef 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ConsumerServiceImpl.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ConsumerServiceImpl.java @@ -8,7 +8,6 @@ import com.xiaojukeji.kafka.manager.common.entity.ao.consumer.ConsumeDetailDTO; import com.xiaojukeji.kafka.manager.common.entity.ao.consumer.ConsumerGroup; import com.xiaojukeji.kafka.manager.common.entity.ao.consumer.ConsumerGroupSummary; import com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO; -import com.xiaojukeji.kafka.manager.common.utils.ListUtils; import com.xiaojukeji.kafka.manager.common.zookeeper.znode.brokers.TopicMetadata; import com.xiaojukeji.kafka.manager.common.entity.ao.PartitionOffsetDTO; import com.xiaojukeji.kafka.manager.common.exception.ConfigException; diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java index 91af67b3..e0919f54 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java @@ -65,14 +65,15 @@ public class LoginServiceImpl implements LoginService { @Override public boolean checkLogin(HttpServletRequest request, HttpServletResponse response) { String uri = request.getRequestURI(); - if (uri.contains("./") || uri.contains("///")) { - LOGGER.error("class=LoginServiceImpl||method=checkLogin||msg=uri illegal, contains ../ or ./ or ///||uri={}", uri); + if (uri.contains("..") || uri.contains("./") || uri.contains("///")) { + LOGGER.error("class=LoginServiceImpl||method=checkLogin||msg=uri illegal, contains .. or ./ or ///||uri={}", uri); singleSignOn.setRedirectToLoginPage(response); return false; } uri = uri.replaceAll("//", "/"); - if (uri.startsWith(ApiPrefix.API_V1_SSO_PREFIX) + if (uri.equals(ApiPrefix.API_V1_SSO_LOGIN) + || uri.equals(ApiPrefix.API_V1_SSO_LOGOUT) || uri.startsWith(ApiPrefix.API_V1_THIRD_PART_PREFIX) || uri.startsWith(ApiPrefix.GATEWAY_API_V1_PREFIX)) { // 白名单接口直接true diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalAccountController.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalAccountController.java index 9b35ec87..455bd460 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalAccountController.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalAccountController.java @@ -9,7 +9,6 @@ import com.xiaojukeji.kafka.manager.common.entity.vo.common.AccountSummaryVO; import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils; import com.xiaojukeji.kafka.manager.common.utils.SpringTool; import com.xiaojukeji.kafka.manager.common.constant.ApiPrefix; -import com.xiaojukeji.kafka.manager.web.api.versionone.gateway.GatewayHeartbeatController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -62,4 +61,4 @@ public class NormalAccountController { AccountRoleEnum accountRoleEnum = accountService.getAccountRoleFromCache(username); return new Result<>(new AccountRoleVO(username, accountRoleEnum.getRole())); } -} \ No newline at end of file +} diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/thirdpart/ThirdPartClusterController.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/thirdpart/ThirdPartClusterController.java index e379256f..58c4f1b0 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/thirdpart/ThirdPartClusterController.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/thirdpart/ThirdPartClusterController.java @@ -7,7 +7,6 @@ import com.xiaojukeji.kafka.manager.common.entity.ResultStatus; import com.xiaojukeji.kafka.manager.common.entity.metrics.BrokerMetrics; import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils; import com.xiaojukeji.kafka.manager.common.zookeeper.znode.brokers.BrokerMetadata; -import com.xiaojukeji.kafka.manager.openapi.common.vo.ThirdPartBrokerOverviewVO; import com.xiaojukeji.kafka.manager.service.cache.PhysicalClusterMetadataManager; import com.xiaojukeji.kafka.manager.service.service.BrokerService; import io.swagger.annotations.Api; @@ -52,4 +51,4 @@ public class ThirdPartClusterController { return new Result<>(underReplicated.equals(0)); } -} \ No newline at end of file +}