RocketChat是一个开源的即时通讯项目。
准备工作
系统环境
linode服务器, CentOS 7.
没有在CentOS 6上面进行过测试.配置服务器防火墙端口
在linode中,可以使用如下命令配置端口:1
2
3
4
5sudo 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"
的问题, 参照这个页面解决了问题.
- 使用
Let's Encrypt
生成SSL证书
Let’s Encrypt是一个用于免费获取SSL证书的在线服务.1
2
3
4
5sudo 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
- 将nginx放到yum repro库中
[root@localhost ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 查看nginx信息
[root@localhost ~]# yum info nginx
- 使用yum安装ngnix
[root@localhost ~]# yum install nginx
- 启动nginx
[root@localhost ~]# systemctl start nginx
- 查看nginx版本
[root@localhost ~]# nginx -v
- 访问nginx,现在你可以通过公网ip (本地可以通过 localhost /或 127.0.0.1 ) 查看nginx 服务返回的信息。
[root@localhost ~]# curl -i localhost
- nginx配置文件位置在/etc/nginx/
[root@localhost /]# ll /etc/nginx/
- 测试配置文件是否正常
nginx -t
安装Rocket-Chat
解决502错误
查看log文件logs/xxx
发现是权限问题,setsebool httpd_can_network_connect on -P
解决
完成以上步骤之后,在Rocket-chat的客户端使用 https://example.com 就可以连接到配置好的服务器了。