Skip to content

Commit

Permalink
Merge pull request didi#224 from didi/master
Browse files Browse the repository at this point in the history
merge master
  • Loading branch information
ZQKC authored Apr 12, 2021
2 parents 9e7450c + 3333501 commit eb1f8be
Show file tree
Hide file tree
Showing 9 changed files with 105 additions and 16 deletions.
94 changes: 94 additions & 0 deletions docs/install_guide/install_guide_nginx_cn.md
Original file line number Diff line number Diff line change
@@ -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`
以下所有<font color='red'>xxxx</font>为nginx代理路径和打包静态文件加载前缀,<font color='red'>xxxx</font>可根据需求自行更改。

```
cd kafka-manager-console
vi webpack.config.js
# publicPath默认打包方式根目录下,修改为nginx代理访问路径。
let publicPath = '/xxxx';
```

### 3、打包

```
npm cache clean --force && npm install
```

ps:如果打包过程中报错,运行`npm install [email protected]`,相反请忽略!

### 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;
#}
```







Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@
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/";

// console
// 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_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/";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -340,10 +340,6 @@ public Properties getTopicConfig(ClusterDO clusterDO, String topicName) {
@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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,15 @@ public void logout(HttpServletRequest request, HttpServletResponse response, Boo
@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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
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;
Expand Down Expand Up @@ -62,4 +61,4 @@ public Result<AccountRoleVO> searchAccount() {
AccountRoleEnum accountRoleEnum = accountService.getAccountRoleFromCache(username);
return new Result<>(new AccountRoleVO(username, accountRoleEnum.getRole()));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
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;
Expand Down Expand Up @@ -52,4 +51,4 @@ public Result<Boolean> checkBrokerStabled(@PathVariable Long clusterId,

return new Result<>(underReplicated.equals(0));
}
}
}

0 comments on commit eb1f8be

Please sign in to comment.