1. 服务器端要求

1.1      操作系统

建议安装CentOS7

1.2      JDK

OracleJDK 8+

1.3      数据库

PostgreSQL 9.3+

  1. 安装步骤

2.1 安装和配置JDK

将JDK解压到指定目录中,如:/usr/local/jdk1.8,然后进行如下配置

vim/etc/profile

将如下内容追加到文件中

export JAVA_HOME=/usr/local/jdk1.8

export JRE_HOME=/usr/local/jdk1.8/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

export PATH=$PATH :$JAVA_HOME/bin

请记住,在上述添加过程中,等号两侧不要加入空格,不然会出现“不是有效的标识符”,因为source /etc/profile 时不能识别多余到空格,会理解为是路径一部分。

然后保存,执行source /etc/profile,使profile生效

2.2 安装PostgreSQL

安装PostgreSQL

yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm

yum install postgresql94-server postgresql94-contrib

初始化数据库

/usr/pgsql-9.4/bin/postgresql94-setup initdb

设置PostgreSQL服务自动启动并启动该服务

systemctl enable postgresql-9.4.service

systemctl start postgresql-9.4.service

2.3 创建PostgreSQL用户和数据库

sudo -u postgrescreateuser –superuser<user>

sudo -u postgrespsqlpostgres –command ‘\password <user>’

sudo -u postgrescreatedb<dbname> -O <user>

<>中的内容根据需要进行修改,如:

sudo -u postgrescreateuser –superuseradmin

sudo -u postgrespsqlpostgres –command’\password admin’

提示输入用户密码和确认密码

sudo -u postgrescreatedbim -O admin

2.4 配置IM Server

进入/usr/local/dangdang-server/conf目录,编辑server.conf

vimserver.conf

修改如下几项:

http {

interface: "0.0.0.0"

port: 9090

base-uri: "http://abc.com:9090"

}

将base-uri修改为IM发布的地址:如http://im.wex5.com:9090

modules {

files {

adapter: "im.actor.server.file.local.LocalFileStorageAdapter"

}

&nbsp;

# ... other modules

security {

# ... other settings

server-keys: [

# ... other server keys

{

#公钥和私钥所在路径(需要用绝对路径,key文件在dangdang-server文件夹的\key文件夹下)

public: "/usr/local/dangdang-server/key/key.pub"

private: "/usr/local/dangdang-server/key/key.private"

}

]

}

}

设置数据库和启用本地文件存储

services {

# PostgreSQL storage for data

# The only required service to start server

# For more information see https://github.com/actorapp/actor-bootstrap/blob/master/docs/server/configure-database.md

postgresql {

# Host of PostgreSQL instance

host: 127.0.0.1

# Port of PostgreSQL instance

port: 5432

# Database name

db: im

# User name in PostgreSQL

user: admin

# Password in PostgreSQL

password: Admin

}

&nbsp;

#设置文件存储目录

file-storage {

location: " /usr/local/dangdang-files"

}

}

保存所做的修改,进入/usr/local/dangdang-server目录,执行nohup bin/actor启动IM Server服务,如果没有报错则说明安装和配置成功。

2.5 检查IM Server数据库是否初始化成功

使用PostgreSQL客户端工具登录数据库,推荐使用Navicat for PostgreSQL,用户和口令使用2.3中创建的用户和口令,登录成功以后,点击“表”,会显示IM Server创建的所有数据表,则表示数据库初始化成功,如下图所示:

092008a

2.6 配置IM前端

打开前端配置文件,该文件路径为前端程序文件夹\config\config.js,将endpoints设置为IM Server所在的地址:如 ws://192.168.1.16:9080

  1. 集群设置

3.1 Web App集群

3.1.1        安装pcre库

如果启用SSL服务(https、WSS),则需要安装pcre库

下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/,下载最新版本。

按以下步骤编译安装:

./configure

make PREFIX=/usr/local/pcre

make install PREFIX=/usr/local/pcre

3.1.2        安装配置HAProxy

可以使用HAProxy、Nginx等反向代理软件设置Web App集群,本例中使用HAProxy、CentOS7。

下载地址:https://github.com/haproxy/haproxy/releases,下载最新版本。

  1. 查看linux版本

uname–a

命令结果

Linux server1 3.10.0-229.20.1.el7.x86_64 #1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64 x86_64x86_64 GNU/Linux

其中3.10.0为linux版本号

  1. 编译、安装HAProxy

make TARGET=linux31 PREFIX=/usr/local/haproxy USE_STATIC_PCRE=1 USE_OPENSSL=1

其中:linux31为系统名称+版本号,如果启用SSL服务,则需要USE_OPENSSL编译参数

make install PREFIX=/usr/local/haproxy

  1. 配置HAProxy

进入HAProxy安装目录

cd /usr/local/haproxy

创建haproxy.cfg文件

vimhaproxy.cfg

配置如下内容:

global

log /dev/log local0

log /dev/log local1 notice

chroot /usr/local/haproxy

uid 99

gid 99

daemon

pidfile /usr/local/haproxy/haproxy.pid

# Default SSL material locations

ca-base /opt/im/ssl/certs

crt-base /opt/im/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.

# For more information, see ciphers(1SSL). This list is from:

# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/

ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

ssl-default-bind-options no-sslv3

tune.ssl.default-dh-param 2048

defaults

log     global

modetcp

option  tcplog

option  dontlognull

timeout connect 10000

timeout client 2400000

timeout server 2400000

listenIM-tcp

bind *:443

# 启用SSL服务

bind *:443 sslcrt /opt/im/im-server.pem

modetcp

default_backend app-tcp

listenIM-ws

bind *:8443#sslcrt /opt/im/im-server.pem

modetcp

default_backend app-ws

listenIM-api

bind *:9443#sslcrt /opt/im/im-server.pem

modetcp

default_backend app-api

backend app-tcp

modetcp

server app01 127.0.0.1:9070 check

backend app-ws

modetcp

server app01 127.0.0.1:9080 check

backend app-api

modetcp

server app01 127.0.0.1:9090 check
  1. 启动HAProxy

/use/local/sbin/haproxy–f /usr/local/haproxy/haproxy.cfg

3.2 Web Socket集群

  1. 注意事项

4.1 连接PostgreSQL服务器失败

编辑PostgreSQL安装目录\bin\postgresql.conf文件,添加以下内容:

listen_addresses = ‘*’

4.2 连接PostgreSQL出现Ident authentication failed for user…

编辑pg_hba.conf文件

vim /var/lib/pgsql/data/pg_hba.conf

local all all trust

host all 127.0.0.1/32 trust

4.3 启动IM服务提示权限不足

给所有者添加运行权限

chmodu+x /usr/local/dangdang-server/bin/actor