在Ubuntu 16.04 LTS安装Mattermost(二)

在Ubuntu 16.04 LTS安装Mattermost(一)

在Ubuntu 16.04 LTS安装Mattermost(二)


配置Mattermost

创建系统管理员用户,设置Mattermost的一般用途

.打开浏览器,导航到Mattermost实例.比如:Mattermost服务器IP地址为10.10.10.10,然后访问http://10.10.10.10:8065.

.创建第一个团队和用户,第一个用户是系统管理员(system_admin)角色,有权限访问系统控制台

.打开系统控制台.点击导航面板顶部的用户名,在打开的菜单中,点击系统控制台-System Console

.设置网站URL:

a.在System Console的GENERAL部分,点击Configuration.

b.在Site URL字段中,设置用户使用浏览器访问的URL.比如:https://mattermost.example.com.

如果你使用HTTPS,确保在Mattermost服务或者proxy服务设置了TLS

.设置邮件提醒

a.在System Console的NOTIFICATIONS部分,点击Email,然后执行下面几个步骤

设置 Enable Email Notification为 true

设置Notification display Name为 No-Reply

设置Notification From Address为{域名},比如,kenmyzhang@outlook.com

设置SMTP Server Username为{SMTP-用户名},kenmyzhang@outlook.com

设置SMTP Server Password为{SMTP-密码}

设置SMTP Server为{SMTP-服务器} 比如:smtp-mail.outlook.com

设置SMTP Server Port为465

设置Connection Security 为TLS或者STARTTLS

b.点击Test Connection.

c.连接成功后,点击Save


.设置文件图片存储位置

提示:与消息相关的文件图片并没有存储在数据库.他们存储在你所指定的路径.你可以存储在本地文件系统或者Amazon S3.

a.在System Console中的FILES部分,点击Storage

b.如果存储在本地,设置File Storage System为 Local File System,可以接受认的Local Storage DIrectory或者输入指定路径.这个路径必须是存在的,并且Mattermost有写权限.可以是绝对路径或者相对路径.相对路径是相对于mattermost目录的.

c.如果存储在Amazon S3,设置File Storage System为Amazon S3并且输入你Amazon账号

d.点击Save保存

.重启Mattermost使配置生效

sudosystemctlrestartmattermost


配置TLS

如果你想要使用HTTPS访问Mattermost,有两种选择

1.在Mattermost服务器上设置TLS

2.安装代理,例如Nginx,然后在代理上设置TLS

最简单的选择是在Mattermost服务器上设置TLS,但是,如果你想要支持200个以上的用户,使用proxy会有更好的性能和安全.代理服务器也提供了标准的HTTP请求日志.

在Mattermost服务器上配置TLS

.在System Consle > General > Configuration

a.设置Listem Address为:443

b.设置Connection Security为TLS

c. 设置Forward port 80 to 443为true

.激活CAP_NET_BIND_SERVICE能力,允许Mattermost绑定小数值端口.

cd /opt/mattermost/bin

sudo setcap cap_net_bind_service==+ep ./platform

.安装安全证书

你可以使用Let's Encrypt自动安装设置证书,或者指定你自己的证书

a.使用Let's Encrypt

设置User Let's Encrypt为true

重启Mattermost,使配置生效

b.使用自己的证书

设置User Let's Encrypt为false

设置TLS Certificate File 为证书文件的路径

设置TLS Key File为 私钥文件的路径

重启Mattermost使这些配置生效

Nginx 代理上设置TLS

使用代理的好处:

SSL终端

HTTP到HTTPS重定向

端口映射 :80到:8065

标准请求日志

.安装Nginx

sudo apt-get install Nginx

验证是否安装成功,可以执行下面命令

curl http://localhost

如果正常运行,会有下面打印显示

<!DOCTYPEhtml>
<html>
<head>
<title>WelcometoNginx!</title>.
.
.
<p><em>ThankyouforusingNginx.</em></p>
</body>
</html>

可以使用下面命令停止 启动 重启Nginx

sudoserviceNginxstop
sudoserviceNginxstart
sudoserviceNginxrestart

接下来要做的是

将完全限定域名(FQDN),例如mattermost.example.com,映射到Nginx服务器

配置从互联网到Mattermost服务器的Nginx代理连接

.配置Nginx为代理

sudo touch /etc/Nginx/sites-available/mattermost

.以root用户打开/etc/Nginx/sites-available/mattermost,输入以下内容,并将里边的IP地址和完全限定域名FQDN你自己服务对应的值

upstreambackend{
server10.10.10.2:8065;
}

proxy_cache_path/var/cache/Nginxlevels=1:2keys_zone=mattermost_cache:10mmax_size=3ginactive=120muse_temp_path=off;

server{
listen80;
server_namemattermost.example.com;

location~/api/v[0-9]+/(users/)?websocket${
proxy_set_headerUpgrade$http_upgrade;
proxy_set_headerConnection"upgrade";
client_max_body_size50M;
proxy_set_headerHost$http_host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerX-Forwarded-Proto$scheme;
proxy_set_headerx-frame-optionsSAMEORIGIN;
proxy_buffers25616k;
proxy_buffer_size16k;
proxy_read_timeout600s;
proxy_passhttp://backend;
}

location/{
client_max_body_size50M;
proxy_set_headerConnection"";
proxy_set_headerHost$http_host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerX-Forwarded-Proto$scheme;
proxy_set_headerx-frame-optionsSAMEORIGIN;
proxy_buffers25616k;
proxy_buffer_size16k;
proxy_read_timeout600s;
proxy_cachemattermost_cache;
proxy_cache_revalidateon;
proxy_cache_min_uses2;
proxy_cache_use_staletimeout;
proxy_cache_lockon;
proxy_passhttp://backend;
}
}

.删除已存在的认sites-enabled文件

sudo rm /etc/Nginx/sites-enabled/default

.启用mattermost配置

ln-s/etc/Nginx/sites-available/mattermost/etc/Nginx/sites-enabled/mattermost

. 重启Nginx使配置生效

sudo systemctl restart Nginx

. 配置生效后,执行下面命令会看到Mattermost signup页面

curlhttp://localhost,

.限制8065端口的访问权限

认情况下,Mattermost服务器的8065端口接收来自网络上所有机器的连接.现使用防火墙拒绝所有机器连接8065端口,除了Nginx服务器以及管理Mattermost的服务器.如果你安装在Amazon Web Services,可以使用安全组来限制访问


. 配置SSL和HTTP/2

你可以使用你想要的任何证书,但在这里只展示如何从Let's Encrypt下载和安装证书,免费的证书授权

a.安装git

sudo apt-get install git

b.下载

gitclonehttps://github.com/letsencrypt/letsencrypt

c.切换目录

cd letsencryp

d.停止Nginx

sudo service Nginx stop 或者 sudo systemctl stop Nginx

e,确保没有监听80端口

netstat -na | grep ':80.*LISTEN'

f.安装letscrypt

./letsencrypt-auto certonly --standalone

提示时,输入你的域名.安装完成后,你可以在/etc/letsencrypt/live目录下找到证书

g.以root用户打开/etc/Nginx/sites-available/mattermost,更新 下面加粗的几行,确保域名已经切换成

proxy_cache_path /var/cache/Nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {

listen 80 default_server;

server_name {domain-name} ;

return 301 https://$server_name$request_uri;

}


server {

listen 443 ssl http2;

server_name {domain-name} ;


ssl on;

ssl_certificate /etc/letsencrypt/live/{domain-name}/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/{domain-name}/privkey.pem;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

ssl_prefer_server_ciphers on;

ssl_session_cache shared:SSL:10m;



location ~ /api/v[0-9]+/(users/)?websocket$ {

proxy_set_header Upgrade $http_upgrade;

h.重启Nginx

sudo systemctl restart Nginx

i.检查SSL证书是否安装正确

通过访问https://www.ssllabs.com/ssltest/index.html来测试SSL证书

如果丢失链或证书路径有错误,则可能需要缺少中间证书。

j .配置cron,每个月自动更新证书

crontab -e

用你的域名替换掉{domain-name}

@monthly/home/ubuntu/letsencrypt/letsencrypt-autocertonly--reinstall--Nginx-d{domain-name}&&sudoserviceNginxreload

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...