1.1 操作系统
建议安装CentOS7
1.2 JDK
OracleJDK 8+
1.3 数据库
PostgreSQL 9.3+
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" } # ... 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 } #设置文件存储目录 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创建的所有数据表,则表示数据库初始化成功,如下图所示:
2.6 配置IM前端
打开前端配置文件,该文件路径为前端程序文件夹\config\config.js,将endpoints设置为IM Server所在的地址:如 ws://192.168.1.16:9080
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,下载最新版本。
- 查看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版本号
- 编译、安装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
- 配置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
- 启动HAProxy
/use/local/sbin/haproxy–f /usr/local/haproxy/haproxy.cfg
3.2 Web Socket集群
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
评一波