zoukankan      html  css  js  c++  java
  • EBIM部署文档

    初始化环境配置:

    sudo yum -y install net-tools wget vim epel-release psmisc telnet-server xinetd bind-utils sysstat ntpdate
    sudo yum group install "Development Tools" "Development Libraries"

    sudo yum -y install gcc make gcc-c++ openssl openssl-devel wget vim
    sudo yum -y install ntpdate sysstat epel-release net-tools psmisc
    sudo yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel giflib-devel
    #时间同步设置
    */30 * * * * /usr/sbin/ntpdate us.pool.ntp.org |logger -t NTP
    #开启firewalld
    firewall-cmd --permanent --add-port=3000/tcp
    firewall-cmd --permanent --add-service=http
    #设置允许某个ip或网段访问某个端口或服务
    firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.0.8" port port="80" protocol="tcp" accept'

    firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" port port="80" protocol="tcp" accept'
    firewall-cmd  --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
    firewall-cmd --reload

    EBIM环境配置:

    1). NODEJS安装(两种方式:源码安装和nvm版本管理工具安装,推荐1.2安装方式

    1.1)Node.JS(6.10.3):

    yum -y install gcc gcc-c++ openssl-devel   ##确认服务器有node.js编译及依赖相关软件
    yum -y install nodejs npm  ##(EPEL-release安装)
    wget https://nodejs.org/dist/v6.10.3/node-v6.10.3.tar.gz ##(以下步骤为源码安装)
    sudo tar zxvf node-v6.10.3.tar.gz && cd node-v6.10.3 && sudo ./configure --prefix=/usr/local/node && sudo make && sudo make install
    vim /etc/profile
    [root@BobServerStation node-v0.10.24]# vim /etc/profile
    #set nodejs env
    export NODE_HOME=/usr/local/node
    export PATH=$NODE_HOME/bin:$PATH
    export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
    [root@BobServerStation node-v0.10.24]# source /etc/profile  ##重启生效
    View Code

     1.2)nvm: nodejs版本管理

    
    
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash   ##nvm安装 
    ## 安装完成后,会发现使用nvm install stable 安装node速度很慢。使用国内镜像快速安装node: 把环境变量 NVM_NODEJS_ORG_MIRROR, 加入到 .bash_profile 文件中:
    ## nvm export NVM_NODEJS_ORG_MIRROR
    =https://npm.taobao.org/mirrors/node
    ## nvm 使用参考https://github.com/creationix/nvm
    # 设置 npm 淘宝镜像
    npm install -g pm2 --registry=https://registry.npm.taobao.org

     1.3)Linux添加字体(点击这里

    2).MongoDB(集群方式参考MongoDB副本集原理、搭建、应用(5)):

    systemLog:
        quiet: false  
        path: /data/mongodb/logs/mongom.log  
        logAppend: false
        destination: file
        logRotate: rename
    
    processManagement:  
        fork: true  
        pidFilePath: /data/mongodb/dbm/mongod.pid  
    net:  
        bindIp: 127.0.0.1  
        port: 27017  
        maxIncomingConnections: 65536
        wireObjectCheck: true  
        ipv6: false   
    storage:  
        dbPath: /data/mongodb/dbm
        indexBuildRetry: true  
        journal:  
            enabled: true  
        directoryPerDB: true
        engine: wiredTiger  
        syncPeriodSecs: 60   
        wiredTiger:  
            engineConfig:  
               # cacheSizeGB: 8  
                journalCompressor: snappy  
                directoryForIndexes: false    
            collectionConfig:  
                blockCompressor: snappy  
            indexConfig:  
                prefixCompression: true  
    operationProfiling:  
        slowOpThresholdMs: 100  
        mode: all
    security:  
        #authorization: enabled  
        #clusterAuthMode: keyFile  
        #keyFile: /usr/local/mongodb/conf/keyfile  
        javascriptEnabled: true  
    setParameter:   
        enableLocalhostAuthBypass: true  
        authenticationMechanisms: SCRAM-SHA-1
    replication:  
        oplogSizeMB: 4096
       #replSetName: ebim
    MongoDB3.4 mongo_template.conf
    sudo wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.8.tgz
    sudo wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgz
    sudo wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.9.tgz sudo tar zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz
    && sudo mv mongodb-linux-x86_64-rhel70-3.4.4 /usr/local/mongodb && sudo cd /usr/local/mongodb && sudo mkdir conf 创建启动配置文件: mkdir -p /home/mongodb/data/dba mkdir -p /home/mongodb/logs vim conf/mongoa.conf #以下内容为mongoa.conf配置文件内容 port=27017 dbpath=/home/mongodb/data/dba logpath=/home/mongodb/logs/mongoa.log journal=true logappend=true storageEngine=wiredTiger #auth=true fork=true nohttpinterface=true #relica set 配置 oplogSize=4096 #replSet=ebim #keyFile=/usr/local/mongodb/conf/replkeyfile 启动mongodb服务: /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongoa.conf

    2.1).配置MongoDB帐号:

     1 >use admin
     2 switched to db admin
     3 > db.createUser(
     4 ...  {
     5 ...    user: "root",
     6 ...    pwd: "password",
     7 ...    roles: [
     8 ...       { role: "root", db: "admin" }      #超级root帐号
     9 ...    ]
    10 ...  }
    11 ... )
    12 >use ebimdb
    13 switched to db ebimdb
    14 > db.createUser(
    15 ...  {
    16 ...    user: "ebim",
    17 ...    pwd: "password",
    18 ...    roles: [
    19 ...       { role: "readWrite", db: "ebimdb" }
    20 ...    ]
    21 ...  }
    22 ... )
    23 
    24 添加keyfile认证文件,并配置权限
    25 openssl rand -base64 741 > /usr/local/mongodb/conf/replkeyfile
    26 chmod 600 /usr/local/mongodb/conf/replkeyfile

    2.2) . 修改MongoDB配置文件(mongoa.conf):   去除auth,keyFile参数注释.(副本集则需要将keyfile 认证文件copy到所有所有节点,并去除配置文件replSet参数注释)

    3 ) . EBIM服务端部署:

    修改全局安装npm package权限(nvm安装无需执行此步骤)
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    安装pm2
    npm i pm2 -g
    安装ImageMagick,unoconv
    sudo yum install ImageMagick.x86_64 ImageMagick-devel.x86_64 unoconv libreoffice cjkuni-ukai-fonts.noarch cjkuni-uming-fonts.noarch texlive-cjk.noarch texlive-cjk-doc.noarch texlive-xecjk.noarch texlive-xecjk-doc.noarch

    3.1).修改服务端配置,并执行初始化:

    #修改配置文件参数
    vim config/env.js
    vim config/services/production.js
    #服务端初始化
    node bin/shell.js ./init.js
    #启动服务
    pm2 start pm2.ebim.config.js --env=production && pm2 start pm2.worker.config.js --env=production

    4).Nginx

    yum -y install nginx
    
    Nginx配置文件:
    
    user  nginx nginx;
    worker_processes  auto;
    
    error_log  /var/log/nginx/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    pid        /run/nginx.pid;
    worker_rlimit_nofile 65535;
    
    events {
        use epoll;
        worker_connections  65535;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        charset  utf-8;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 500m;
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  60;
    
        tcp_nodelay on;
    
        #fastcgi_connect_timeout 300;
        #fastcgi_send_timeout 300;
        #fastcgi_read_timeout 300;
        #fastcgi_buffer_size 64k;
        #fastcgi_buffers 4 64k;
        #fastcgi_busy_buffers_size 128k;
        #fastcgi_temp_file_write_size 256k;
    
        open_file_cache max=65535 inactive=20s;
        open_file_cache_min_uses 5;
        open_file_cache_valid 60s; 
        
        proxy_redirect off;
        proxy_connect_timeout    60;
        proxy_read_timeout       120;
        proxy_send_timeout       20;
        proxy_buffer_size        32k;
        proxy_buffers            4 128k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;
    
        gzip  on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied        expired no-cache no-store private auth;
        gzip_disable        "MSIE [1-6].";          
    
        server_tokens off;
    
        upstream web_server {
            server 127.0.0.1:3010 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3011 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3012 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3013 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3014 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3015 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3016 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3017 weight=1 max_fails=2 fail_timeout=30s;
            server 127.0.0.1:3020 weight=1 max_fails=2 fail_timeout=30s;
         }
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            access_log  /var/log/nginx/access.log  main;
    
            location / {
                #root   html;
                #index  index.html index.htm;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass http://web_server;
                proxy_http_version 1.1;
                proxy_set_header Host  $host;
                proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP  $remote_addr;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
                #root           html;
            #   fastcgi_pass   127.0.0.1:9000;
            #   fastcgi_index  index.php;
            #   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            #   include        fastcgi_params;
            # }
    
            location /status {
                stub_status on;
                access_log   off;
            }
    
            #location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
            #   {
            #        expires      30d;
            #    }
    
            #location ~ .*.(js|css)?$
            #   {
            #        expires      12h;
            #    }
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    include vhost/*.conf;
    }
    View Code

    5).添加MongoDB  EBIM服务为开机启动

    #mongodb开机启动
    vim /usr/lib/systemd/system/mongod.service
    [Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
     
    [Service]
    LimitCORE=infinity
    LimitNOFILE=65535
    #LimitNPROC=
    #User=mongo
    #Group=mongo
    Type=forking
    Environment=MONGOFILE=/usr/local/mongodb344/conf/mongom.conf
    #EnvironmentFile=/usr/local/mongodb/conf/mongo.env
    PIDFile=/home/mongodb/data/dba/mongod.pid
    ExecStart=/usr/local/mongodb344/bin/mongod -f $MONGOFILE
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    Restart=on-failure
    RestartSec=42s
    PrivateTmp=true
     
    [Install]
    WantedBy=multi-user.target
    #EBIM开机启动
    chmod +x /etc/rc.d/rc.local
    ## ln -s /usr/local/node/bin/node /usr/bin/node
    vim /etc/rc.d/rc.local
    su - ebim -c "/usr/local/node/bin/pm2 start /home/ebim/xxx/pm2.ebim.config.js --env=production"
    su - ebim -c "/usr/local/node/bin/pm2 start /home/ebim/xxx/pm2.worker.config.js --env=production"

    6).数据备份:

    30 4 * * 3 /bin/sh /home/scripts/mongobak.sh  
    #!/bin/bash
    FLODER="/home/mongobak"
    DATE=$(date '+%Y-%m-%d')
    if [ ! -d "$FLODER" ];then
        mkdir -p "$FLODER"
    fi
    cd /usr/local/mongodb
    ## ./bin/mongodump  -o /home/mongobak/mongodb-$DATE
    ./bin/mongodump --port=27018 -u root -p xxx --oplog -o /home/mongobak/mongodb-$DATE
    find /home/mongobak -mtime +10 |xargs rm -rf
  • 相关阅读:
    Apache ab压力测试时出现大量的错误原因分析
    图解linux下的top命令
    [转载]几种切词工具的使用(转)
    大规模中文文本处理中的自动切词和标注技术
    [转载]盘点:94版《三国演义》演员的今昔对比照
    搜索引擎切词详解
    iphone-命令行编译之--xcodebuild
    Appium IOS 自动化测试初探
    手把手教你appium_mac上环境搭建
    Appium-doctor 检测Xcode未安装问题
  • 原文地址:https://www.cnblogs.com/Easonlou/p/6599160.html
Copyright © 2011-2022 走看看