在个人服务器上部署Rocket-chat

RocketChat是一个开源的即时通讯项目。

准备工作

  1. 系统环境
    linode服务器, CentOS 7.
    没有在CentOS 6上面进行过测试.

  2. 配置服务器防火墙端口
    在linode中,可以使用如下命令配置端口:

    1
    2
    3
    4
    5
    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --zone=public --add-service=https --permanent
    # sudo firewall-cmd --zone=public --add-service=http
    sudo firewall-cmd --zone=public --add-port=12345/tcp --permanent
    # sudo firewall-cmd --zone=public --remove-port=12345/tcp --permanent # 移除端口

配置完成后使用sudo firewall-cmd --reload使配置生效.
使用sudo firewall-cmd --list-all-zones可以查看当前的端口配置情况.

在设置防火请的时候我遇到过permission to firewalld's "ifcfg-eth0"的问题, 参照这个页面解决了问题.

参考页面: https://linode.com/docs/security/firewalls/introduction-to-firewalld-on-centos/#configuring-firewalld

  1. 使用Let's Encrypt生成SSL证书
    Let’s Encrypt是一个用于免费获取SSL证书的在线服务.
    1
    2
    3
    4
    5
    sudo yum update
    sudo yum install git
    sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
    cd /opt/letsencrypt
    sudo -H ./letsencrypt-auto certonly --standalone -d example.com -d www.example.com # Relpace example.com to your own site

运行成功后在/etc/letsencrypt/live可以看到当前证书
注意这个证书有效期为90天,所以最好定期更新证书,使用sudo crontab -e添加0 0 1 * * /opt/letsencrypt/letsencrypt-auto renew,以定期执行.

安装nginx

  1. 将nginx放到yum repro库中
    [root@localhost ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. 查看nginx信息
    [root@localhost ~]# yum info nginx
  3. 使用yum安装ngnix
    [root@localhost ~]# yum install nginx
  4. 启动nginx
    [root@localhost ~]# systemctl start nginx
  5. 查看nginx版本
    [root@localhost ~]# nginx -v
  6. 访问nginx,现在你可以通过公网ip (本地可以通过 localhost /或 127.0.0.1 ) 查看nginx 服务返回的信息。
    [root@localhost ~]# curl -i localhost
  7. nginx配置文件位置在/etc/nginx/
    [root@localhost /]# ll /etc/nginx/
  8. 测试配置文件是否正常
    nginx -t

参考页面: https://www.jianshu.com/p/96691511295f

安装Rocket-Chat

nginx配置参考这个页面
参考这个页面

解决502错误

查看log文件logs/xxx
发现是权限问题,setsebool httpd_can_network_connect on -P解决

完成以上步骤之后,在Rocket-chat的客户端使用 https://example.com 就可以连接到配置好的服务器了。