搭建负载流程与存储服务

======================================================================================================================================
服务器环境搭建:
===================
-------------------
api服务器所需环境:
1、nginx。宝塔安装即可。
2、tomcat+jdk。宝塔安装即可,版本tomcat7。
3、nginx配置见附件1。
-------------------
后台服务器所需环境:
1、nginx。宝塔安装即可。
2、tomcat+jdk。宝塔安装即可,版本tomcat7。
3、ffmepg。见e://夜色源码/
4、nginx配置见附件1
-------------------
tracker+storage文件存储服务器:
以下安装方式见https://github.com/happyfish100/fastdfs/wiki
----------
环境准备
----
使用的系统软件
1、centos7.x
----
2、libfatscommon    
FastDFS分离出的一些公用函数包
----
3、FastDFS    
FastDFS本体
----
4、fastdfs-nginx-module    
FastDFS和nginx的关联模块
----
5、nginx1.15.4
----------
编译环境
----
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
----------
磁盘目录
----
1、所有安装包    
/usr/local/src
----
2、数据存储位置    
/home/dfs/#这里我为了方便把日志什么的都放到了dfs    
3、mkdir /home/dfs #创建数据存储目录
   cd /usr/local/src #切换到安装目录准备下载安装包
----------
安装libfatscommon
----
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
----------
安装FastDFS
----
cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装
#配置文件准备
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
----------
安装fastdfs-nginx-module
----
cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
----------
安装nginx
----
wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz #解压
cd nginx-1.15.4/
#添加fastdfs-nginx-module模块
./configure --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --add-module=/usr/local/src/fastdfs-nginx-module/src/
make && make install #编译安装
----------
分布式部署
----------
tracker配置
#服务器ip为 192.168.52.2,192.168.52.3,192.168.52.4
#我建议用ftp下载下来这些文件 本地修改
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122  # tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs  # 存储日志和数据的根目录
----
storage配置
vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000  # storage服务端口(默认23000,一般不修改)
base_path=/home/dfs  # 数据和日志文件存储根目录
store_path0=/home/dfs  # 第一个存储目录
tracker_server=192.168.52.2:22122  # 服务器1
tracker_server=192.168.52.3:22122  # 服务器2
tracker_server=192.168.52.4:22122  # 服务器3
http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
----
client测试(需要在所有服务器启动后)
vim /etc/fdfs/client.conf
#需要修改的内容如下
base_path=/home/moe/dfs
tracker_server=192.168.52.2:22122  # 服务器1
tracker_server=192.168.52.3:22122  # 服务器2
tracker_server=192.168.52.4:22122  # 服务器3
#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
----
配置nginx访问
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.52.2:22122  # 服务器1
tracker_server=192.168.52.3:22122  # 服务器2
tracker_server=192.168.52.4:22122  # 服务器3
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置(ssl配置见附件1)
server {
    listen       8888;    ## 该端口为storage.conf中的http.server_port相同
    server_name  localhost;
    location ~/group[0-9]/ {
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
}
======================================================================================================================================
======================================================================================================================================     
服务启动与检测:
---------------------------------------------------------
tracker
--------
/etc/init.d/fdfs_trackerd start #启动tracker服务
/etc/init.d/fdfs_trackerd restart #重启动tracker服务
/etc/init.d/fdfs_trackerd stop #停止tracker服务
chkconfig fdfs_trackerd on #自启动tracker服务
---------------------------------------------------------
storage
--------
/etc/init.d/fdfs_storaged start #启动storage服务
/etc/init.d/fdfs_storaged restart #重动storage服务
/etc/init.d/fdfs_storaged stop #停止动storage服务
chkconfig fdfs_storaged on #自启动storage服务
---------------------------------------------------------
nginx
--------
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx
---------------------------------------------------------
检测集群
--------
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
# 会显示会有几台服务器 有3台就会 显示 Storage 1-Storage 3的详细信息
---------------------------------------------------------
client测试
--------
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
======================================================================================================================================
======================================================================================================================================
服务搭建流程:本流程是在上述环境搭建好的基础上需要添加的步骤。
===================
 1、APP后台,通讯服务器|webapps目录下将线上root压缩包上传
-------------------
 2、后台服务器|nginx服务器配置文件按照线上配置文件配置, client_max_body_size 100m;配置文件加上,位置要放在server之上。
-------------------
 3、后台服务器|ffmpeg软件安装,流程在e://夜色源码中。
-------------------
 4、后台服务器|/usr/local/logo:视频水印位置。
-------------------
 5、后台网址xxx.com/admin/login
-------------------
======================================================================================================================================
======================================================================================================================================     
安全性
===================
-------------------
1.tracker.conf,暂未添加,storage server 与tracker server两个服务是在一台电脑上的
allow_hosts# 可以连接到此 tracker server 的ip范围(对所有类型的连接都有影响,包括客户端,storage server)
store_lookup=2# 上传组(卷) 的方式 0:轮询方式 1: 指定组 2: 平衡负载(选择最大剩余空间的组(卷)上传)
-------------------
2./etc/fastdfs/http.conf   防盗链设置   --已有token加密,此功能暂未添加
      http.anti_steal.check_token=true
      http.anti_steal.token_ttl=1800
      http.anti_steal.secret_key=FASTDFS1234567890
  /www/server/tomcat7/webapps/ROOT/WEB-INF/classes/serverurl.properties
    # token 防盗链功能
    fastdfs.http_anti_steal_token=true
    # 密钥
    fastdfs.http_secret_key=FASTDFS1234567890
    二者需要保持一致
======================================================================================================================================
====================================================================================================================================== 
部署问题
===================
1、解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid" failed(2:No such file or directory)
 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-------------------
2、防火墙开启或导致服务启动不了,关闭防火墙:$systemctl stop firewalld.service #关闭
-------------------
3、所有ip设置不能设置成127.0.0.1 要设置成局域网
-------------------
4、/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
    发现有以下状态的服务器:
         Storage 4:
             ip_addr = 10.120.151.114  WAIT_SYNC
    经过各种重启都不解决问题,只好先删除,再加入
    (1)在tracker中操作,从集群中删除
       /usr/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 172.31.123.62
    (2)在storage宕机服务器中,删除数据文件夹
     rm -rf /home/dfs/data
    (3)在tracker中重启storage节点
     /etc/init.d/fdfs_storaged restart  
    (4)如果还未恢复正常,再来一遍
-------------------
5、注意vim /etc/fdfs/mod_fastdfs.conf他的配置。
-------------------
6、通过ip访问文件时出现404,url_have_group_name=true。严格按照github官方教程走。
-------------------
7、rds ,redis是部署在云上的记得ip加白
-------------------
8、api服务器需要在/home目录下新建ehcache目录,否则短息发送失败
-------------------
9、部署项目的时候注意权限问题,ROOT目录下权限给www而非root
======================================================================================================================================          
======================================================================================================================================     
横向扩展,纵向扩展storage服务器都需要在tracker服务器的nginx添加配置
======================================================================================================================================

======================================================================================================================================
--------
附件1
--------
-------------------------------------------------------------------------------
宝塔nginx网站配置文件
-------------------------------------------------------------------------------
server
{
    listen 80;
    listen 443 ssl http2;
    server_name yes-api.cc;
    index index.php index.html index.htm default.php default.htm default.html;
        location / {
            root   html;
            index  index.html index.htm index.php;
            proxy_pass    http://127.0.0.1:8081;
        } 
        location /club {
            alias   /usr/local/club/;
        }
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/yes-api.cc/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/yes-api.cc/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;

    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/yes-api.cc.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
   
    
   
    access_log  /www/wwwlogs/yes-api.cc.log;
    error_log  /www/wwwlogs/yes-api.cc.error.log;
}
======================================================================================================================================
--------
附件2
--------
--------------------------------------------------------------------------------
/www/server/tomcat7/webapps/ROOT/WEB-INF/classes/serverurl.properties
--------------------------------------------------------------------------------
SERVERIMG_URL=https://img.yes0.cc/             ---此项作废无意义
#图片访问地址
remote.file.uri.prefix=https://img.yes0.cc/    ---文件地址
remote.video.uri.prefix=https://yes-api.net/   ---前台地址和后台地址
#fastdsf配置信息
fastDFS.connect_timeout=5
fastDFS.network_timeout=30
fastDFS.charset=UTF-8
fastDFS.http.tracker_http_port=8989
fastDFS.http.anti_steal_token=no
fastDFS.http.secret_key=FastDFS1234567890
fastDFS.tracker_server=img.yes0.cc:22122       ---tracker地址

#fastdht配置信息
fastDHT.network_timeout=30
fastDHT.charset = UTF-8
fastDHT.keep_alive=1
fastDHT.group_count=1

fastDHT.group0=img.yes0.cc:11411


redis.host=r-j6cs9c5m8z23qjvdktpd.redis.rds.aliyuncs.com    ---redis地址
redis.port=6379
redis.minIdle=20
redis.maxIdle=40
redis.maxTotal=300
redis.password=yesData!@#$%4f6defb5                         ---redis密码
#秒
redis.expiration=1800
redis.maxWaitMillis=5000


session.redis.namespace=ViDEO1
session.maxInactiveInterval=259200
======================================================================================================================================
======================================================================================================================================
批量杀死进程
===================
ps -ef | grep nginx | grep -v grep | cut -c 9-15 | xargs kill -9
======================================================================================================================================

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页