2025-03-20 17:43:07 +08:00

6.0 KiB
Raw Blame History

如果不清楚如何安装docker-compose的可以看下《centos安装docker》文档

  1. 在文件编辑器上,使用全局替换的方式,将文件夹下的所有 192.168.193.128替换为服务器的ip

  2. 将本目录所有文件及文件夹打包上传到服务器,效果如图所示

服务器上目录结构

  1. 执行授权命令
chmod -R 777 ./rocketmq/broker/logs
chmod -R 777 ./rocketmq/broker/store
chmod -R 666 ./minio/data
chmod -R 777 ./elasticsearch/data
  1. 启动容器

ps: 容器一共要下载7G左右的数据请耐心等待 注意: java文件夹中的docker-compose文件采用的是本地模式如果有需要改成ports模式要把本地模式去掉 并且同步开放并且映射原java端口号以及端口号+1000的端口号该端口号是给xxl-job使用的

docker-compose up -d --build
  1. 各个端访问路径及其密码

请自行192.168.193.128替换为服务器ip

全局搜索密码 hn02le.34lkdLKD 替换为自己所设置的新密码: ! ! !

  1. 访问minio管理页面右下角有个加号创建存储区域(create bucker) 名为tmerclub

image-20210616090042502

若要前端可以读取图片,需要设置权限

image-20210629112059876

  1. 创建es索引

在es部署成功后新建索引有两种方法 7.1.通过 Elasticsearch 的 RESTFul API 创建索引

PUT http://127.0.0.1:9200/product

7.2.通过 CURL 命令创建索引

curl -X PUT "localhost:9200/product?pretty"
{
 ...
}
  1. canal创建mysql账号

创建并授权用户 canal;

```mysql
CREATE USER canal IDENTIFIED BY 'canal';

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

FLUSH PRIVILEGES;

mysql查询binglog位置

SHOW MASTER STATUS

编辑./canal/conf/example/instance.properties

修改以下四个参数

# 填写数据库地址
canal.instance.master.address=192.168.193.128:3306
# 填写执行命令`SHOW MASTER STATUS`后的File内容
canal.instance.master.journal.name=mysql-binlog.000001



# username/password
# 填写数据库账号
canal.instance.dbUsername=canal
# 填写数据库密码
canal.instance.dbPassword=hn02le.34lkdLKD

image-20210621131013166

重启canal

docker restart tmerclub-canal
  1. 如果测试环境、开发环境、生产环境用的都是同一套支付系统,那么会面临一个问题:

测试环境中的支付单号1会与生产环境中的支付单号1重复。所以需要在不同的环境增加一个需要比如加多个序号测试环境的1会变成11开发环境的1会变成21

需要在application.yml 修改这个配置请配置1-99。请手动在不同的环境加上不同的id

application:
   workerId: 10

10. 系统会部署两个redis请不要清空redis一个是用来放缓存的一个是用来放库存的请不要随便清空tmerclub-aof-redis这个redis否则相当于删库跑路库存会找不回来同时改redis也会挂载在服务器当中并开启了aof详细看 ./redis/redis.conf 这个配置文件

11. 为了服务器安全建议出了商城应用以外所有中间件的端口不要暴露在公网如redismysql等或者设置复杂密码避免遭受攻击。所有访问开启https

nginx推荐的配置如下根据需要进行增加配置

server {
    listen 80;
    server_name xxx.com;
    # 永久重定向到https
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    # 开启http2
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name xxx.com;

    ssl_certificate /ssl/xxx.com.pem;
    ssl_certificate_key /ssl/xxx.com.key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    # 强tls协议
    ssl_protocols TLSv1.2 TLSv1.3;
    # 强加密方式
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    location / {
        # 一些安全的请求头
        add_header Cache-Control "no-store";
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";
        # 配置页面运行访问的地址,除了了这些地址以外都不允许访问
        add_header Content-Security-Policy "default-src 'self' https://xxxx.com wss://im.xxxx.com;img-src 'self' https://img.xxxx.com  data:; style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline';font-src 'self' data:;";

        proxy_pass http://xxxx;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 屏蔽接口文档
    location /doc.html {
        return 404;
    }
}

12. shardingSphere连接

根据docker配置的端口连接sharding默认为3307端口账号sharding密码hn02le.34lkdLKD,可以在开发环境搭建/中间件docker-compse一键安装/shardingsphere/conf/server.yaml中修改