开始前我们先更新下操作系统
sudo apt update && sudo apt upgrade
全选代码
复制
安装 Rocket.Chat 最快的方法是使用它的 Snap。Snap 是 Linux 系统上一种软件包管理的方式。它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。在 Ubuntu 16.04 LTS 以上版本的系统都内置了。
只需部署SNAPD环境包即可:
执行
sudo apt-get install snapd
全选代码
复制
安装 Rocket.Chat 执行 一定要手动输入
sudo snap install rocketchat-server
全选代码
复制
提示了:rocketchat-server (6.x/stable) 6.2.5 from Rocket.Chat (rocketchat✓) installed 则表示安装成功!
可以通过 http://IP:3000访问
安装后,Rocket.Chat 服务会自动启动,检查一下是否在运行:
sudo service snap.rocketchat-server.rocketchat-server status
全选代码
复制
你可以访问 Rocket.Chat snap 查看一些其他命令。
nginx返代理设置
//我们从安装Nginx开始:
# sudo apt install nginx
//安装 Nginx 后,我们继续为 RocketChat 配置虚拟主机:
# sudo nano /etc/nginx/conf.d/rocketchat.conf
// 在里面我们将放置以下几行:
upstream rocket_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name rocket.1234f.com;
access_log /var/log/nginx/rocketchat-access.log;
error_log /var/log/nginx/rocketchat-error.log;
location / {
proxy_pass http://ip:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
ctrl+o 保存 ctrl+X 退出
ctrl+o 切换 shift+: 切换到保存 输入 :wq 回车保存退出
//我们检查虚拟主机配置,重启并激活 Nginx:
# 一行一行复制提交
sudo nginx -t
# 一行一行复制提交
sudo systemctl restart nginx
# 一行一行复制提交
sudo systemctl enable nginx
我们已经准备好通过 http://rocket.1234f.com 访问 RocketChat 的反向代理
但我们会更进一步,现在我们将配置 Nginx 以通过 https 访问 RocketChat,为此我们将在今天的案例中实施自签名 SSL 证书。我使用自签名证书的原因是因为你们中的大多数人在互联网上没有真正的域,所以不可能获得有效的证书。
//第一件事是生成我们的密钥和证书:
# sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-rocket.key -out /etc/ssl/certs/nginx-rocket.crt
//填写请求的数据。
Country Name (2 letter code) [AU]:CU
State or Province Name (full name) [Some-State]:Mayabeque
Locality Name (eg, city) []:Santa Cruz del Norte
Organization Name (eg, company) [Internet Widgits Pty Ltd]:NETWORLD
Organizational Unit Name (eg, section) []:Redes y Internet
Common Name (e.g. server FQDN or YOUR name) []:rocket.1234f.com
Email Address []:[email protected]
//关注数据,方便修改。
//我们为示例生成pem文件,大小为2048绰绰有余:
# sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048
//让我们创建一个专用的 RocketChat 文件来保存关键文件位置:
# sudo nano /etc/nginx/snippets/rocket.conf
//内容将是:
ssl_certificate /etc/ssl/certs/nginx-rocket.crt;
ssl_certificate_key /etc/ssl/private/nginx-rocket.key;
//让我们为 Nginx 配置 SSL 参数:
# sudo nano /etc/nginx/snippets/ssl-params.conf
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
ssl_stapling on; # Requires nginx >= 1.3.7
ssl_stapling_verify on; # Requires nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Disable strict transport security for now. You can uncomment the following
# line if you understand the implications.
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
//这次我们再次编辑 RocketChat 虚拟主机文件以使用 SSL 并监听端口 443:
# sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream rocket_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name rocket.1234f.com;
return 301 https://$server_name$request_uri;
access_log /var/log/nginx/rocketchat-access.log;
error_log /var/log/nginx/rocketchat-error.log;
location / {
proxy_pass https://IP:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
listen 443 ssl;
include snippets/rocket.conf;
include snippets/ssl-params.conf;
}
//前移的是我们必须添加的行。
ctrl+o 保存 ctrl+X 退出
ctrl+o 切换 shift+: 切换到保存 输入 :wq 回车保存退出
//我们检查 Nginx 中的一切是否正确,然后我们重新启动服务:
# sudo nginx -t
# sudo systemctl restart nginx
//我们准备通过:https://rocket.1234f.com 访问RocketChat配置向导,因为是自签名证书,当然会出现安全警告,我们添加异常继续。
就是这样,我们已经在我们的网络上运行了我们的聊天系统,您可以使用浏览器或官方桌面应用程序。