部署服务器

1、部署服务器

  1. 59.226.29.77(占用空间1T,带宽为百兆共享,32G内存,16核CPU):
    • 运行负载均衡服务
    • fastdfs,开放端口22122, 23000
    • nginx访问fastdfs文件
  2. 59.226.29.78(占用空间1T,带宽为百兆共享,32G内存,16核CPU):
    • docker运行后端微服务
    • nginx运行后台管理系统
  3. 59.226.29.79(占用空间1T,带宽为百兆共享,32G内存,16核CPU):
    • docker运行后端微服务
    • nginx运行后台管理系统
  4. 59.226.29.80(占用空间1T,带宽为百兆共享,16G内存,8核CPU):
  • 运行主数据库:用户名root,端口3306,密码123@cnic
    • nginx运行前端商城
  1. 59.226.29.81(占用空间1T,带宽为百兆共享,16G内存,8核CPU):

    • 运行备份数据库:用户名root,端口3306,密码123@cnic
    • nginx运行前端商城
  2. 59.226.29.82(占用空间1T,带宽为百兆共享,32G内存,8核CPU):

    • apollo配置中心,包括:apollo-configservice、apollo-adminservice、apollo-portal ,端口8080,8070,用户名apollo,密码admin
    • zookeeper,运行在docker中,端口2181
    • kafka,运行在docker中 ,端口9092
    • elasticSearch,运行在docker中, 端口9200,9300
    • redis,运行在docker中 ,端口6379,密码123@cnic

    6、安装FastDFS

2、环境安装

1、安装JDK

在6台机器上安装JDK

  • 上传JDK压缩包

  • 解压tar xzvf jdk-8u211-linux-x64.tar.gz

  • 配置环境变量vim /etc/profile末尾添加如下内容

    export JAVA_HOME=/data/jdk1.8.0_211
    export PATH=$JAVA_HOME/bin:$PATH
    
  • 加载配置文件source /etc/profile

2、安装docker

在2、3、6机器上安装docker

  • 安装方法:docker安装官方文档

  • #卸载旧版本
    $ sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  • #安装所需的软件包
    $ sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  • #使用以下命令来设置稳定的存储库
    $ sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
  • #安装Docker
    sudo yum install docker-ce docker-ce-cli containerd.io
    
  • #启动Docker
    sudo systemctl start docker
    
  • #开启2375端口
    vim /usr/lib/systemd/system/docker.service
    
  • #修改为下面的配置
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    
  • #重新加载docker配置
    systemctl daemon-reload
    #重启docker
    systemctl restart docker
    

3、安装nginx

在第1、2、3、4、5、6机器安装nginx

第一台 nginx隐藏server信息和版本信息

1.隐藏版本信息

在nginx.conf里面添加

server_tokens off;

2.隐藏server信息

需要重新编译ngnix
进入解压出来的nginx 源码目录

vi src/http/ngx_http_header_filter_module.c

static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;

改为

static u_char ngx_http_server_string[] = "Server: X-Web" CRLF;
static u_char ngx_http_server_full_string[] = "Server: X-Web" CRLF;
static u_char ngx_http_server_build_string[] = "Server: X-Web" CRLF;

重新编译nginx

再看header里面Server信息变成了自定义的名字 X-Web

  • 上传压缩包

  • 解压tar xzvf nginx-1.15.12.tar.gz

  • 安装必须使用make、cmake和gcc编译器

    yum install -y make cmake gcc gcc-c++
    yum -y install openssl openssl-devel
    yum -y install pcre-devel
    
  • 安装

  • #配置configure --prefix 代表安装的路径,–with-http_ssl_module 安装ssl,–with-http_stub_status_module查看nginx的客户端状态

    cd nginx-1.15.12
    ./configure --prefix=/usr/local/nginx  --with-http_ssl_module --with-http_stub_status_module
    make
    make install
    
#进入安装目录
cd /usr/loacal/nginx
#启动nginx
./usr/local/nginx/sbin/nginx

4、安装主从数据库

在4机器上安装主数据库,在5机器上安装备份数据库

  • 两台机器分别安装mysql 59.226.29.80 、59.226.29.81

    根据需要下载相应版本,查看官网地址

    https://dev.mysql.com/downloads/mysql/5.7.html#downloads

    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
    
    tar -xzvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
    
    mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
    
    #useradd -r参数表示mysql用户是系统用户,不可用于登录系统
    
    cd /usr/local
    
    groupadd mysql
    
    useradd -r -g mysql mysql
    
  • 安装数据库

    #创建data目录 
    
    cd /usr/local/mysql
    mkdir data
    
  • 将/usr/local/mysql的所有者及所属组改为mysql

    chown -R mysql.mysql /usr/local/mysql
    
  • 在/usr/local/mysql/support-files目录下创建my_default.cnf

    [mysqld]
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
     
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    port = 3306
    socket = /tmp/mysql.sock
    character-set-server=utf8
     
    log-error = /usr/local/mysql/data/mysqld.log
    pid-file = /usr/local/mysql/data/mysqld.pid
    
  • 拷贝,如果提示是否覆盖,y

    cp /usr/local/mysql/support-files/my_default.cnf /etc/my.cnf
    
  • 初始化 mysqld

    cd /usr/local/mysql/
    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
    
  • 初始化报错

 error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
  • 安装后在初始化就OK了
yum install -y libaio
  • 初始化完成之后,查看日志

    vi /usr/local/mysql/data/mysqld.log
    
  • 临时密码 a8?DQir=T+k+

    2019-04-08T06:14:29.790033Z 1 [Note] A temporary password is generated for root@localhost: a8?DQir=T+k+
    
  • 把启动脚本放到开机初始化目录

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    
  • 启动mysql服务

    service mysql start
    
  • 登录mysql,密码为初始密码

    cd /usr/local/mysql
    ./bin/mysql -u root -p
    
  • 修改密码

    mysql> set password=password('123@cnic');
    mysql> grant all privileges on *.* to root@'%' identified by '123@cnic';
    mysql> flush privileges;
    
  • 添加远程访问权限

    mysql> use mysql;
    mysql> update user set host='%' where user = 'root';
    mysql> flush privileges;
    
  • 重启mysql生效

    service mysql stop
    service mysql start
    
    service mysql restart
    
  • 防火墙开放3306端口

mysql主从同步

  • 编辑主服务器mysql 配置文件

    vim /etc/my.conf
    
    server-id=1 #服务器id (主从必须不一样)
    
    log-bin=mysql-bin #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径作为主机的配置
    
    binlog-do-db=zgkjy-v2 #要给从机同步的库
    
    #binlog-do-db=
    
    binlog-ignore-db=mysql #不给从机同步的库(多个写多行)
    
    binlog-ignore-db=information_schema
    
    binlog-ignore-db=performance_schema
    
    binlog-ignore-db=sys
    
    expire_logs_days=7 #自动清理 7 天前的log文件,可根据需要修改
    
    
  • 设置成功 重启Mysql 服务

    service mysqld restart
    
  • 创建备份账号与测试log_bin是否成功开启

     #登录主数据库
     show variables like '%log_bin%';
    
    #设置备份账户信息
     grant replication slave on *.* to 'backup'@'%' identified by '123456';
    
    #查看快照
    show master status\G
    
    #关闭主数据库的读取锁定
    unlock tables;
    
  • 设置从服务器 Mysql 配置

     vim /etc/my.conf
    
    [mysqld]
    
    basedir=/usr/local/mysql #mysql路径
    
    datadir=/data/mysqldata #mysql数据目录
    
    socket=/tmp/mysql.sock
    
    user=mysql
    
    server_id=2 #MySQLid 后面2个从服务器需设置不同
    
    port=3306
    
    #加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。
    
    read_only = 1
    
    master_info_repository=TABLE
    
    relay_log_info_repository=TABLE
    
    #relay_log_recovery=1 #从机禁止写
    
    #super_read_only=1 #从机禁止写
    
    
  • 重启 从数据库

    service mysqld restart
    
  • 登录slave数据库,并做如下设置

    mysql> stop slave;
    
    mysql> change master to
    
    -> master_host='192.168.1.201', #master的ip
    
    -> master_user='backup', #备份用户名
    
    -> master_password='123456', #密码
    
    -> master_log_file='mysql-bin.000003', #上面截图,且要与master的参数一致
    
    -> master_log_pos=431; #上面截图,且要与master的参数一致
    
    

5、安装apollo配置中心

在第6台机器上安装apollo配置中心

  • apollo官网下载:apollo-configservice、apollo-adminservice、apollo-portal三个文件

  • 上传到/data/apollo并解压

  • 创建ApolloConfigDB, 导入sql/apolloconfigdb.sql ,也可导入已有的配置sql

  • 创建ApolloPortalDB, 导入sql/apolloportaldb.sql,也可导入已有的配置sql

  • 修改apollo-configservice数据库连接

    cd /data/apollo/apollo-configservice/config
    vim application-github.properties
    #修改数据库连接并保存
    spring.datasource.url = jdbc:mysql://59.226.29.80:3306/ApolloConfigDB?characterEncoding=utf8
    spring.datasource.username = root
    spring.datasource.password = 123@cnic
    
    
  • 修改apollo-adminservice数据库连接

    cd /data/apollo/apollo-adminservice/config
    vim application-github.properties
    #修改数据库连接并保存
    spring.datasource.url = jdbc:mysql://59.226.29.80:3306/ApolloConfigDB?characterEncoding=utf8
    spring.datasource.username = root
    spring.datasource.password = 123@cnic
    
  • 修改apollo-portal数据库连接

    cd /data/apollo/apollo-portal/config
    vim application-github.properties
    #修改数据库连接并保存
    spring.datasource.url = jdbc:mysql://59.226.29.80:3306/ApolloConfigDB?characterEncoding=utf8
    spring.datasource.username = root
    spring.datasource.password = 123@cnic
    
  • 修改apollo-portal的环境配置

    cd /data/apollo/apollo-portal/config
    vim apollo-env.properties
    #修改环境并保存
    dev.meta=http://59.226.29.82:8080
    
  • 启动

    sh /data/apollo/apollo-portal/apollo-configservice/scripts/startup.sh
    sh /data/apollo/apollo-portal/apollo-adminservice/scripts/startup.sh
    sh /data/apollo/apollo-portal/scripts/startup.sh
    
  • 防火墙开放8080和8070端口

  • 浏览器访问59.226.29.82:8070,用户名apollo,密码admin

6、安装FastDFS

  • FastDFS是C语言开发的应用。安装必须使用make、cmake和gcc编译器。

    yum install -y make cmake gcc gcc-c++
    
  • 安装FastDFS核心库

    上传文件后解压缩

    unzip libfastcommon-master.zip -d /data/fastdfs
    

    libfastmon没有提供make命令安装文件。使用的是shell脚本执行编译和安装。shell脚本为make.sh

    #编译
    ./make.sh
    #安装
    ./make.sh install
    

    有固定的默认安装位置。在/usr/lib64和/usr/include/fastcommon两个目录中。

    创建软连接:

    #因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接
    ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
    ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
    ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
    
  • FastDFS主程序安装

    上传并解压缩

    tar -zxf FastDFS_v5.08.tar.gz -C /data/fastdfs
    

    编译安装

    ./make.sh
    ./make.sh install
    

    安装后,FastDFS主程序所在位置:

    /usr/bin - 可执行文件所在位置。
    /etc/fdfs - 配置文件所在位置。
    /usr/lib64 - 主程序代码所在位置
    /usr/include/fastdfs - 包含的一些插件组所在位置
    
  • Tracker 服务配置启动

    复制一份模板配置文件

    cd /etc/fdfs
    cp tracker.conf.sample tracker.conf
    

    打开 tracker.conf,修改 base_path 路径,base_path FastDFSTracker启动后使用的根目录,用来存放Tracker data和logs。

    base_path=/home/yuqing/fastdfs -> base_path=/data/fastdfs/data/fastdfs-tracker
    

    配置中的路径需要先创建好才能启动服务

    mkdir -p /data/fastdfs/data/fastdfs-tracker
    

    启动

    /etc/init.d/fdfs_trackerd start
    

    启动成功后,配置文件中base_path指向的目录中出现FastDFS服务相关数据目录(data目录、logs目录)

    其它命令:

    #查看状态
    ps -ef | grep fdfs
    #停止服务
    /etc/init.d/fdfs_trackerd stop
    #重启服务
    /etc/init.d/fdfs_trackerd restart
    
  • Storage配置与启动

    修改配置

    mkdir -p /data/fastdfs/data/fastdfs-storage/base
    mkdir -p /data/fastdfs/data/fastdfs-storage/store
    
    cd /etc/fdfs
    cp storage.conf.sample storage.conf
    #修改文件
    base_path=/home/yuqing/fastdfs -> /data/fastdfs/data/fastdfs-storage/base
    store_path0=/home/yuqing/fastdfs -> /data/fastdfs/data/fastdfs-storage/store
    tracker_server=192.168.150.11:22122 -> tracker_server=59.226.29.82:22122
    

    启动服务

    /etc/init.d/fdfs_storaged start
    
  • fastdfs-nginx-module模块安装

    上传并解压

    tar -zxf fastdfs-nginx-module_v1.16.tar.gz -C /data/fastdfs
    

    修改配置

    vim /data/fastdfs/fastdfs-nginx-module/src/config
    
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    

    编译安装Nginx

    ./configure --with-http_ssl_module --add-module=/data/fastdfs/fastdfs-nginx-module/src/
    
    make && make install
    

    拷贝配置文件

    cp /data/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    

    修改配置文件 mod_fastdfs.conf

    tracker_server=59.226.29.82:22122
    url_have_group_name = true
    store_path0=/data/fastdfs/data/fastdfs-storage/store
    

    复制FastDFS安装包中的两个配置文件(http.conf和mime.types)到/etc/fdfs目录中

    cp /data/fastdfs/FastDFS/conf/http.conf /etc/fdfs/
    cp /data/fastdfs/FastDFS/conf/mime.types /etc/fdfs/
    

创建网络访问存储服务的软连接

ln -s /data/fastdfs/data/fastdfs-storage/store  /data/fastdfs/data/fastdfs-storage/store/data/M00

修改nginx配置文件

   location ~ /group([0-9])/M00 {
          ngx_fastdfs_module;
      }
  • 防火墙开放端口:22122

7、安装zookeeper、kafka

  • 下载镜像

    docker pull wurstmeister/zookeeper
    docker pull wurstmeister/kafka:2.11-0.11.0.3
    
  • 启动镜像

    #启动zookeeper
    docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
    #启动kafka
    docker run -d --name kafka --publish 9092:9092 \
    --link zookeeper \
    --env KAFKA_ZOOKEEPER_CONNECT=59.226.29.82:2181 \
    --env KAFKA_ADVERTISED_HOST_NAME=59.226.29.82 \
    --env KAFKA_ADVERTISED_PORT=9092  \
    --volume /etc/localtime:/etc/localtime \
    wurstmeister/kafka:2.11-0.11.0.3
    
  • 防火墙开放端口:2181,9092

8、安装elasticSearch

docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:6.5.4

防火墙开放端口:9200,9300

9、发布微服务

  • 两台机器59.226.29.78 、59.226.29.79部署常用配置命令
FROM java:8
EXPOSE 8761

VOLUME /tmp
ADD /target/renren-register.jar /app.jar
RUN bash -c 'touch /app.jar'
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-Xmx500m","-jar","/app.jar"]
  • 两台机器分别配置自己ip、除register其他服务都要配置
--add-host eureka:59.226.29.39
--add-host eureka:59.226.29.78
--add-host eureka:59.226.29.79
  • 所有服务都需要配置一下
-v /opt/settings:/opt/settings
  • pay付款服务需要多加配置
-v /opt/cfca:/opt/cfca
  • gateway网关多加配置
-p 8080:8080

10、开放端口

firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

11、安装redis

docker run -d --name redis -p 6379:6379 -v redis:/data --requirepass "123@cnic" redis --appendonly yes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿乐灬学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值