如何在Ubuntu20.04上安装似是而非的分析

来自菜鸟教程
跳转至:导航、​搜索

介绍

Plausible Analytics 是一个开源的、自托管的 Web 分析应用程序,用 Elixir 编写,专注于简单性和隐私性。 它将有关您网站访问者的数据存储在 PostgreSQL 和 ClickHouse 数据库中。

在本教程中,您将使用 Docker Compose 安装 Plausible,然后安装 Nginx 作为 Plausible 应用程序的反向代理。 最后,您将通过使用 Certbot 从 Let's Encrypt 证书颁发机构下载和配置 SSL 证书来启用安全 HTTPS 连接。

先决条件

为了完成本教程,您首先需要以下内容:

  • 启用了 UFW 防火墙的 Ubuntu 20.04 服务器。 请阅读我们的 Initial Server Setup with Ubuntu 20.04 以了解有关设置这些要求的更多信息
  • 安装了 Docker。 您可以使用 How To Install and Use Docker on Ubuntu 20.04Step 1 来完成此操作。 或者,如果您希望非 root 用户能够在不使用 sudo 的情况下运行 docker 命令,则可以选择遵循该教程的第 2 步
  • Docker Compose 已安装。 按照如何在Ubuntu 20.04上安装和使用Docker Compose的Step 1安装本软件

注意: 如果您使用的是 DigitalOcean 的 One-Click Docker Image ,则可以跳过这些先决步骤。 此映像将已安装和配置 Docker、Docker Compose 和 UFW。

在您选择的区域中启动一个新的 Docker 映像,然后以 root 用户身份登录并继续学习本教程。 或者,您可以省略所有命令的 sudo 部分,但这不是必需的。


最后,要启用 SSL,您需要一个指向服务器公共 IP 地址的域名。 例如,这应该类似于 example.complausible.example.com。 如果您使用的是 DigitalOcean,请参阅我们的 DNS 快速入门 ,了解有关在我们的控制面板中创建域资源的信息。

当您满足所有先决条件后,继续 步骤 1,您将下载并启动 Plausible 软件。

第 1 步 – 使用 Docker Compose 安装似是而非的分析

Plausible 创建了一个 Git 存储库,其中包含自托管软件所需的所有配置文件。 您的第一步是将这个 repo 克隆到您的服务器,更新两个配置文件,然后启动 Plausible 应用程序和数据库容器。

立即登录您的服务器。

首先,使用 cd 命令导航到 /opt 目录:

cd /opt

然后使用 git 命令将 repo 从 GitHub 克隆到 /opt 内名为 plausible 的新目录:

sudo git clone https://github.com/plausible/hosting plausible

这会将所有必要的配置文件拉入 /opt/plausible。 进入新创建的目录:

cd plausible

我们需要编辑的第一个文件是 plausible-conf.env,这个文件有一些我们需要设置的配置变量。

在打开文件进行编辑之前,生成一个新的随机散列:

openssl rand 64 | base64 -w 0 ; echo

这使用 openssl 命令生成 64 个随机字符,并使用 base64 命令对它们进行 base64 编码。 将输出复制到剪贴板,然后打开配置文件:

sudo nano plausible-conf.env

该文件包含您需要填写的五个变量:

似是而非的conf.env

ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

填写电子邮件、用户名、密码和基本 URL,然后粘贴您使用 openssl 生成的随机字符。 请注意,您在此处指定的密码长度必须至少为六个字符。

保存文件(CTRL+O 然后 ENTERnano 中)并关闭编辑器(CTRL+X)。

您可以将更多配置选项添加到此文件中,但这个最小的设置将使您启动并运行。 有关通过 plausible-conf.env 配置 Plausible 的更多信息,请参阅官方 Plausible Analytics 自托管文档 中的

现在您需要更新 docker-compose.yml 文件。 该文件是 docker-compose 命令用来配置和启动多个 Docker 容器的文件。 我们需要更改此文件中的一个选项:Plausible 绑定到的 IP。

sudo nano docker-compose.yml

找到定义 Plausible 容器的部分。 它将以 plausible: 开头。 在该部分中找到 ports: 定义并将其更新为以下内容:

码头工人-compose.yml

    ports:
      - 127.0.0.1:8000:8000

这确保了 Plausible 仅在 localhost 接口上侦听,而不是公开可用的。 即使您设置了 UFW 防火墙,由于 Docker 网络工作方式的一些怪癖,如果您不采取此步骤,您的 Plausible 容器将可以在端口 8000 上被公众访问,我们只想要它可以通过您将在下一步设置的 Nginx 代理访问。

保存并关闭 docker-compose.yml 文件,然后使用 docker-compose 下载、配置和启动容器:

sudo docker-compose up --detach

--detach 标志告诉 docker-compose 在后台创建容器,与我们的终端会话分离:

Output. . .
Starting plausible_plausible_events_db_1 ... done
Starting plausible_plausible_db_1        ... done
Starting plausible_mail_1                ... done
Starting plausible_plausible_1           ... done

应用程序容器及其所有支持的邮件和数据库容器现在应该正在运行。 您可以通过使用 curl 命令来获取在 localhost 上运行的新似是而非容器的主页来验证这一点:

curl http://localhost:8000
Output<html><body>You are being <a href="/login">redirected</a>.</body></html>

如果某些 HTML 输出到您的终端,您就知道服务器已启动并正在运行。

接下来,我们将 Nginx 设置为 反向代理localhost:8000 向公众公开。

第 2 步 — 安装和配置 Nginx

将 Nginx 等 Web 服务器放在 Elixir 服务器前面可以通过将缓存、压缩和静态文件服务卸载到更高效的进程来提高性能。 我们将安装 Nginx 并将其配置为 反向代理 对 Plausible 的请求,这意味着它将负责将用户的请求传递给 Plausible 并再次返回。

首先,刷新你的包列表,然后使用 apt 安装 Nginx:

sudo apt update
sudo apt install nginx

使用“Nginx Full”UFW 应用程序配置文件允许公共流量到端口 80443(HTTP 和 HTTPS):

sudo ufw allow "Nginx Full"
OutputRule added
Rule added (v6)

接下来,在/etc/nginx/sites-available目录下打开一个新的Nginx配置文件。 我们将调用我们的 plausible.conf 但您可以使用不同的名称:

sudo nano /etc/nginx/sites-available/plausible.conf

将以下内容粘贴到新的配置文件中,确保将 your_domain_here 替换为您配置为指向您的似是而非服务器的域。 这应该类似于 plausible.example.com,例如:

/etc/nginx/sites-available/plausible.conf

server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

此配置目前仅适用于 HTTP,因为我们将让 Certbot 在下一步中负责配置 SSL。 配置的其余部分设置日志记录位置,然后将所有流量传递到 http://localhost:8000,这是我们在上一步中启动的似是而非的实例。

保存并关闭文件,然后通过将其链接到 /etc/nginx/sites-enabled/ 来启用配置:

sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

使用 nginx -t 验证配置文件语法是否正确:

sudo nginx -t
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,重新加载 nginx 服务以获取新配置:

sudo systemctl reload nginx

您的似是而非的站点现在应该可以在纯 HTTP 上使用。 加载http://your_domain_here,它看起来像这样:

现在您的站点已通过 HTTP 启动并运行,是时候使用 Certbot 和 Let's Encrypt 证书来保护连接了。

第 3 步 — 安装 Certbot 并设置 SSL 证书

感谢 Certbot 和 Let's Encrypt 免费证书颁发机构,将 SSL 加密添加到我们的 Plausible 应用程序只需要两个命令。

首先,安装 Certbot 及其 Nginx 插件:

sudo apt install certbot python3-certbot-nginx

接下来,在 --nginx 模式下运行 certbot,并指定您在 Nginx server_name 配置中使用的相同域:

sudo certbot --nginx -d your_domain_here

系统将提示您同意 Let's Encrypt 服务条款,并输入电子邮件地址。

之后,系统会询问您是否要将所有 HTTP 流量重定向到 HTTPS。 这取决于您,但通常建议这样做并且安全。

之后,Let's Encrypt 将确认您的请求,Certbot 将下载您的证书:

OutputCongratulations! You have successfully enabled https://plausible.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/plausible.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/plausible.example.com/privkey.pem
   Your cert will expire on 2021-12-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Certbot 将自动重新加载 Nginx 以获取新的配置和证书。 重新加载您的网站,如果您选择重定向选项,它应该会自动将您切换到 HTTPS。

您的站点现在是安全的,可以使用您在 步骤 1 中设置的默认用户详细信息进行安全登录。 然后将提示您验证您的注册,验证码将通过电子邮件发送到您配置的地址。

默认情况下,此电子邮件直接从您的服务器发送,这可能会由于各种垃圾邮件预防措施而产生问题。 如果您没有收到电子邮件,请检查您的垃圾邮件文件夹。 如果它也不存在,您可能需要在 plausible-conf.env 文件中设置更合适的 SMTP 详细信息。 有关邮件配置的详细信息,请参阅 官方自托管文档

成功登录后,您会看到一个提示,让您使用 Plausible 设置您的第一个网站:

您已成功安装并保护了您的似是而非的分析软件。

结论

在本教程中,您使用 Docker Compose 启动了 Plausible Analytics 应用程序及其关联的辅助容器,然后设置了 Nginx 反向代理并使用 Let's Encrypt SSL 证书对其进行保护。

您现在已准备好设置您的网站并添加 Plausible Analytics 跟踪脚本。 请参阅 官方似是而非的分析文档 以获取有关使用该软件和设置您的站点的更多信息。