コンテンツにスキップ

Webinoly 设定(webinolys 命令)

Webinoly 设置

使用 “Webinoly ”命令可以对全局配置进行修改和管理,也可以对Web服务器的某些方面进行查询。我们将详细介绍该命令的使用方法。

命令格式:

sudo webinoly <选项>

选项:

  • -backup
  • -blockip
  • -cache-valid
  • -clear-cache
  • -custom-headers
  • -datadog
  • -db-import
  • -dbpass
  • -default-site
  • -dynvar
  • -email
  • -external-sources-update
  • -info
  • -login-www-data
  • -mysql -password
  • -mysql-public-access
  • -query-string-cache
  • -query-string-never-cache
  • -timezone
  • -tools-port
  • -tools-site
  • -server-reset
  • -skip-cache
  • -skip-cookie-cache
  • -smtp
  • -uninstall
  • -update
  • -verify
  • -version

已弃用命令: -conf-value_ (in favor of -dynvar), -config-cache (in favor of -cache-valid), -db-role-default, -external-db-save, -header-cache-control, -header-csp, -header-hsts, -header-permissions-policy, -header-referrer, -header-robots, -header-xcto, -header-xfo, -header-xssp, -raw, -login-www-data

示例:

# 检查 Webinoly 更新
sudo webinoly -update

# SFTP 访问
sudo webinoly -sftp=on
# 译者注:原为sudo webinoly -login-www-data=on

# 清理缓存
sudo webinoly -clear-cache

# 备份
sudo webinoly -backup=s3 -profile=mysite

# 服务器时区
sudo webinoly -timezone

系统更新

别忘记随时更新系统!


我该如何升级到最新版本的 Webinoly?

非常简单,只需执行以下命令,它就会下载并安装该应用程序的最新版本。

sudo webinoly -update

需要注意,此命令仅更新 Webinoly 应用程序本身,而不会更新服务器上安装的其他软件包。

  • 您应该至少每月运行一次更新和升级命令:sudo apt update && sudo apt -y upgrade
  • 如果您使用的是 VPS,则建议您大约每四个月至少执行一次冷启动操作,也就是手动关机再开机,而不是直接reboot重启。根据您的VPS服务提供商的不同,此操​​作会 将实例迁移到新的宿主节点

    强烈建议始终将 Webinoly 更新到最新版本,尤其是当技术堆栈版本升级时;而在堆栈更新过程中,很多东西都会被更改,如果一次进行多个更新,大多数情况下是安全的,但由于这些更新的复杂性,你会增加破坏某些东西的风险。

流量较大的服务器应该制定维护计划,避免在关键时段进行这些更新,最好是在没有实时流量的情况下进行,尤其是在更新整个系统架构时更是如此。

如果您不是经验丰富的用户,切勿使用 do-release-upgradedist-upgrade 命令升级云实例。这很容易导致系统严重故障!


NGINX & FastCGI 缓存

全局配置与管理 NGINX 和 FastCGI 缓存


请注意,大多数 Nginx 和 FastCGI 设置也可以直接从 Webinoly 配置文件 中进行修改。

FastCGI 缓存设置

#cache

Webinoly 会配置三个时间值来控制缓存保留时间。

  • HTTP 代码 200: 请求成功。
  • HTTP 代码 301, 302, 303, 307, 308, 404, 410, 451: 重定向和页面未找到。
  • 非活动时间: 删除在指定时间内未被访问的缓存数据。

要修改配置,您只需执行以下命令:

sudo webinoly -cache-valid

时间参数必须按以下格式输入:

  • s – seconds
  • m – minutes
  • h – hours
  • d – days
  • w – weeks
  • M – Months
  • y – years

该命令还允许通过以下方式自动执行:

sudo webinoly -cache-valid=[10d,1w,5m]

第一个参数用于处理状态码为 200 的响应, 第二个参数用于处理停机时间,第三个参数用于处理重定向。

清除缓存

选项:

  • fastcgi
  • redis
  • memcached
  • opcache
  • all
  • < 域名 >
bash
# 示例:
sudo webinoly -clear-cache=fastcgi
sudo webinoly -clear-cache=all

# 自定义缓存的站点
sudo webinoly -clear-cache=example.com
sudo webinoly -clear-cache=example.com -subfolder=/test

将URL从缓存中排除

阻止 FastCGI 缓存指定的 URL。

sudo webinoly -skip-cache=/page

* WordPress 的预配置缓存选项默认情况下已经包含了一些需要排除的页面。 了解详情

示例:

# 排除某页缓存
sudo webinoly -skip-cache=/test

# 支持正则表达式 (sensitive|insensitive)
sudo webinoly -skip-cache='^(one|two)$' -regex=insensitive

# 排除的页面列表
sudo webinoly -skip-cache -list

# 取消将页面排除在外
sudo webinoly -skip-cache=/test -delete

* 这些规则的输入顺序可能会影响最终结果。 请阅读 缓存规则优先级 部分 。

此处 介绍了用于支持正则表达式的 -regex 参数。

如果存在此 cookie,则会禁用缓存。

sudo webinoly -skip-cookie-cache=<cookie>

* WordPress 预配置缓存选项默认已包含一些需要排除的 Cookie。 Read here!

示例:

# 添加要排除的 Cookie
sudo webinoly -skip-cookie-cache=wordpress_logged_in

# 支持正则表达式 (sensitive|insensitive)
sudo webinoly -skip-cookie-cache='^(one|two)$' -regex=insensitive

# 已排除的 Cookie 列表
sudo webinoly -skip-cookie-cache -list

# 移除被已排除的 cookie
sudo webinoly -skip-cookie-cache=wordpress_logged_in -delete

* 这些规则的输入顺序会影响最终结果。请参阅 Cache Rules Precedence section

此处 介绍了用于支持正则表达式的 -regex 参数。

查询字符串缓存

默认情况下,包含查询字符串的 URL 不会被缓存。您可以指定一些例外情况,使其可以被缓存。

sudo webinoly -query-string-cache

此外,您还可以指定哪些查询字符串(如果存在)永远不应被缓存。

sudo webinoly -query-string-never-cache
# 示例:
sudo webinoly -query-string-cache=one
sudo webinoly -query-string-never-cache=two

# example.com/?one=true&three=true  (Cached)
# example.com/?one=true&two=true  (No-Cached)

-----

# Remove query-string
sudo webinoly -query-string-cache=one -delete
sudo webinoly -query-string-never-cache=two -delete

# Lists supported
sudo webinoly -query-string-cache -list
sudo webinoly -query-string-never-cache -list

* 这些规则的输入顺序可能会影响最终结果。请参阅 缓存规则优先级

缓存规则优先级

#cacherulesprecedence

最后执行的规则具有更高的优先级:

  • query-string-cache-default 始终置顶。
  • query-string-cacheskip-cache 始终位于头部(在 query-string-cache-default 之后)。最终结果取决于它们的输入顺序。
  • query-string-never-cacheskip-cookie-cache 始终位于尾部。最终结果取决于它们的输入顺序。

屏蔽IP地址

在 Nginx 中限制对特定 IP 地址或地址段的访问。

sudo webinoly -blockip=123.231.12.31

同样,我们可以使用 -purge 选项将其从被屏蔽地址列表中移除。

或者列出所有已被屏蔽阻止的IP地址:

sudo webinoly -blockip -list
# Remove IP from the list
sudo webinoly -blockip -purge
sudo webinoly -blockip=123.231.12.31 -purge

# Multiple IP's
sudo webinoly -blockip=1.1.1.1,2.2.2.2

默认网站

一般来说,直接用浏览器访问服务器的裸机IP地址,您将看到Nginx的欢迎页面,这是默认配置的响应页面。

Webinoly 允许您自定义网站或默认入站返回请求。

sudo webinoly -default-site=<option>
  • default – Nginx 的默认行为。
  • blackhole – 遇到任何与服务器上现有域名不匹配的入站请求,则不响应并返回 444 错误代码。
  • domain – 将现有域名或网站作为入站请求的默认响应。

根据您的需求,可以创建更复杂的解决方案,例如: 在 Webinoly 中创建一个域名转发站点,并将其设置为默认网站,这样所有请求都将被重定向到另一个站点。

请勿使用 IP 地址访问 WordPress 管理后台(尤其是在新安装的情况下), 否则配置与文章一旦修改或创建,就有可能导致出现意外行为。

HTTP 标头配置

以下列出的 HTTP 标头均受支持,并且可以在 Webinoly 配置文件 中进行修改或启用。

  • Cache-Control
  • Content-Security-Policy (CSP)
  • HTTP Strict-Transport-Security (HSTS)
  • Permissions-Policy
  • Referrer-Policy
  • X-Content-Type-Options
  • X-Frame-Options
  • X-Robots-Tag
  • X-XSS-Protection (不再推荐,请改用 CSP)

阅读我们的博客文章: CSP Practical Example

# 包含默认标头

Cache-Control: "no-cache"
Referrer-Policy: "no-referrer-when-downgrade"
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

如何添加自定义 HTTP 标头

在 Webinoly 中,有三种方法可以包含您的请求头:

  • HTTP – 每个请求
  • HTML – 仅包含页面(不包括静态文件请求,例如图片、CSS、JS等)
  • HTTPS – 每次请求(仅在使用 HTTPS 协议时)
# 创建文件:
# /opt/webinoly/templates/source/custom_header_http_webinoly.data
# /opt/webinoly/templates/source/custom_header_https_webinoly.data
# /opt/webinoly/templates/source/custom_header_html_webinoly.data

所有以 add_header 开头并以分号结尾的行都将包含在文件名所描述的上下文中。请注意不要在行末添加空格或任何其他字符。

# 示例
add_header Save-Data "on";
add_header X-DNS-Prefetch-Control "off";

现在您可以加载自己的自定义标头配置:

sudo webinoly -custom-headers=reload

您随时可以修改源文件,但请记住每次修改后都要执行“reload”操作,更改才会生效。 如果您想禁用已加载的自定义标头,请使用“移除”选项。

# 根据上下文包含标头

HTML:
Cache-Control
Referrer-Policy
Permissions-Policy
Content-Security-Policy

HTTP:
X-Frame-Options
X-Content-Type-Options
X-XSS-Protection
X-Robots-Tag

HTTPS:
Strict-Transport-Security

MySQL 数据库工具

MySQL 管理工具。


恢复 MySQL 用户名和密码

#dbdata

Webinoly 会保存安装 MySQL 过程中自动生成的用户名和密码副本,因为这些数据对于执行某些命令是必需的。(例如创建 WordPress 网站的数据库等)

sudo webinoly -dbpass

安装完成后,这些密码(root/admin)的混淆副本会存储在 Webinoly 配置文件中。您应该知道,在某些情况下,您可以删除这些存储的密码:

  • “root”用户的密码无法恢复。
  • 根据官方建议,用户“admin”的密码也存储在 MySQL CNF 文件中,因此用户可以手动检索该密码。
  • 通常情况下,执行 sudo webinoly -server-reset 命令时,系统会使用 Webinoly 配置文件中保存的值重新生成 CNF 文件中“admin”用户的密码。因此,如果这些值被删除,此功能将失效。
  • 即使密码已被移除,也应始终使用下一节描述的方法来修改或更改任何密码,这样CNF文件将自动更新为新密码。

更改 MySQL 密码

非常重要,您绝不能手动或自行修改“root”和“admin”用户的密码。 Webinoly 仅保存并使用这两个用户的密码来运行。 如果您修改了这些密码,Webinoly 将无法访问这些用户,为此我们创建了此命令; 如果您需要修改这些密码,请务必使用此命令进行修改, 这样一来, Webinoly 就能始终访问更新后的凭据。

sudo webinoly -mysql-password

也可以使用以下方式:sudo webinoly -mysql-password=[user,pass]

使用此命令可以更新任何现有用户的密码,但它只保存数据库的数据修改,并且对“root”和“admin”用户强制执行此操作。

访问 phpMyAdmin 和其他工具

#portool

要访问管理区域,您可以使用浏览器,通过您的IP地址或您选择的域名和端口进行访问,例如:http://ser.ver.ip:22222

您还可以在这里找到一些其他工具,例如 PHP(信息、ping 和状态)、NGINX 状态等。

[!NOTE] 此区域受 HTTP 基本身份验证保护,请参阅 HTTPAUTH command to create your credentials.

如果您不知道用于访问 phpMyAdmin 的 MySQL 用户名/密码,请参阅 如何恢复凭据.

您可以随时修改访问端口(0-65535),默认情况下使用端口 22222。

sudo webinoly -tools-port

同样,您可以通过指定参数的方式自动执行:

sudo webinoly -tools-port=19816

此外,还可以为这些工具定义一个现有域名,从而仅允许通过该域名访问这些工具。

sudo webinoly -tools-site=example.com

任何来自其他域名的请求都将被阻止。

现在,您可以通过浏览器访问 example.com:19816 来使用您的工具。 如果您想重置并移除之前设置的任何域名,请使用默认选项:sudo webinoly -tools-site=default

导入 MySQL 数据库

直接从命令行导入 MySQL 数据库。

sudo webinoly -db-import
# 示例
sudo webinoly -db-import -file=/folder/name.sql

# 支持外部数据库
sudo webinoly -db-import -file=/folder/name.sql -external-db=[user,pass,host:port]

如果您需要导出数据库,可以使用我们提供的工具创建您网站的本地数据库备份

默认数据库权限

#privileges

您可以更改创建使用 MySQL 数据库的网站(例如 WordPress 网站)时分配的默认数据库用户权限。

默认情况下,我们使用“完整”权限,而“受限”权限是 WordPress 网站所需的最低权限。某些外部服务(例如 AWS RDS)不允许使用“所有”权限选项。

Webinoly 配置文件 中修改此值

  • basic – SELECT,INSERT,UPDATE,DELETE
  • limited – SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER
  • extra – SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,LOCK TABLES
  • complete – SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,EXECUTE,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,EVENT,TRIGGER
  • full – SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,EXECUTE,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,EVENT,TRIGGER,REFERENCES,LOCK TABLES
  • grant – SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,EXECUTE,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,EVENT,TRIGGER,REFERENCES,LOCK TABLES,GRANT OPTION
  • all – ALL PRIVILEGES

此外,您也可以在创建网站时专门为特定网站更改此设置:sudo site example.com -wp -db-role=extra

MySQL 远程访问

#mysql-remote

默认情况下,MySQL(MariaDB)的配置不允许其他主机或同一主机,通过除了loopback环回(127.0.0.1 或 localhost)接口之外的其他 TCP/IP 接口连接到 MariaDB 服务器。

启用/禁用 MariaDB 接受远程连接 (on/off):

sudo webinoly -mysql-public-access=on

如果您的系统运行了防火墙(操作系统上的软件防火墙、或位于硬件防火墙或NAT设备之后),则必须放开 MariaDB 运行的 TCP 端口(默认情况下一般都是 3306)。

如果您需要,可以创建一个拥有 “all privileges” 所有权限并允许远程访问的用户 (%):

sudo webinoly -mysql-public-access=on -create-master-user=[username,password]

在内部使用,只需授予“replication slave”复制从属权限,而不是“all privileges”所有权限。

sudo webinoly -mysql-public-access=on -create-master-user=[username,password] -replication-slave

* 填入密码时使用 random 参数,即可自动生成随机密码。

使用远程MySQL数据库服务器连接的WordPress网站示例:

# 服务器 A (IP: 1.1.1.1)
# 这将是一个远程 MySQL 服务器

# 仅安装 MySQL (MariaDB)
wget -qO weby qrok.es/wy && sudo bash weby -mysql

# 启用远程访问
sudo webinoly -mysql-public-access=on -create-master-user=[masteruser,abcdefgh]

# 服务器 B
# 这将是Web网站服务器

# 安装 Nginx 和 PHP
wget -qO weby qrok.es/wy && sudo bash weby -php

# 创建 WordPress 站点
sudo site example.com -wp=custom

# 随后,系统会要求您提供自定义的数据库信息
Database Host: 1.1.1.1:3306
External DB Master Username: masteruser
External DB password: abcdefgh

# 就是这样!

服务器管理

服务器管理工​​具和配置


允许 www-data 用户通过 SFTP 访问

此用户对于通过 SFTP 上传文件非常有用,其访问权限非常有限,只能通过 SFTP 登录; 并且只能访问位于 /var/www 的网站数据目录。

sudo webinoly -sftp=on

也可以随时取消访问权限。

sudo webinoly -sftp=off

您本身应该也在使用 SSH 密钥,因此 www-data 用户会复制当前登录用户的 SSH 密钥。 您可以修改 /var/www/.ssh/authorized_keys 文件来添加或删除密钥,以便在需要时精确控制哪些用户可以访问此目录。

设置时区

此命令将设置 PHP 和 Ubuntu 操作系统中的时区。

sudo webinoly -timezone

您也可以通过以下方式直接传递数据:sudo webinoly -timezone=America/Mexico_City查看支持的时区列表

用于发送电子邮件的 SMTP 设置

Webinoly 会默认安装 Postfix 用于发送电子邮件,例如所有 WordPress 网站的通知邮件。 现在,您还可以配置 Postfix 使用外部 SMTP 服务提供商发送电子邮件,例如 Amazon SES、Mandrill、Mailgun、SendGrid 或任何其他提供商。

sudo webinoly -smtp

您所有网站的服务器发出的电子邮件都将通过此服务发送。

# 从命令行测试 SMTP 发信服务:
echo "Subject: test" | sendmail [email protected]

# 删除 SMTP 配置,并使用 Postfix 的默认配置。
sudo webinoly -smtp -purge

# 无人值守脚本格式提示
sudo webinoly -smtp=[smtp_host,user,password,mainhost.com]

“mainhost”指的是在未提供相关数据时,默认用于发送电子邮件的域名,并且该域名必须是服务器上已存在的域名。

什么是 DMARC、DKIM 和 SPF? SPF、DKIM 和 DMARC 通过验证电子邮件是否来自其声称的域名,帮助验证电子邮件发件人的身份。这三种身份验证方法对于防止垃圾邮件、网络钓鱼攻击和其他电子邮件安全风险至关重要。

备份

#backup

Webinoly 有一套完备的备份工具:

  • 导出/导入服务器或站点
  • 数据库备份
  • 使用 S3(AWS S3本家或任何其他 S3 兼容服务)进行增量备份
sudo webinoly -backup

* 您可以手动配置任何受 DuplyDuplicity 支持的备份,如: Amazon S3, Backblaze B2, DropBox, FTP, GIO, Google Docs, Google Drive, HSI, Hubic, IMAP, local filesystem, Mega.co, Microsoft Azure, Microsoft Onedrive, par2, Rackspace Cloudfiles, rsync, Skylabel, ssh/scp, SwiftStack, Tahoe-LAFS, WebDAV.

** 常见的S3兼容服务包括:Backblaze B2、Digital Ocean Spaces、Wasabi、Vultr Object Storage、Linode Object Storage、DreamObjects等。

导出/导入服务器或站点

迁移网站或整个服务器,从未如此so easy!

导出服务器设置和站点:

sudo webinoly -backup=local -export

系统将创建一个包含您所有服务器数据的文件。

在新服务器上迁入数据的选项:

  • full – 配置与站点
  • stack – 只有配置
  • sites – 只有站点
sudo webinoly -backup=local -import=full

导入配置后,所有软件包将根据导出的配置进行安装和配置。 例如,您可以在全新的服务器上使用“-clean”选项安装 Webinoly,然后根据导出的配置构建(导入)您的软件栈。

# 导出整个服务器
sudo webinoly -backup=local -export

# 导入到新服务器上
sudo webinoly -backup=local -import=full -file=/folder/name

“stack”选项还支持根据您的 Webinoly 配置文件 导入配置,这是一种轻松地将配置分发给所有开发团队成员的方法。 只需提供这个文件 /opt/webinoly/webinoly.conf(您甚至可以重命名该文件),您的所有团队成员都可以拥有相同的标准化开发环境,这是在整个团队中复制自定义设置的最简单方法。

要导出/导入特定站点:

# 导出一个站点
sudo webinoly -backup=local -export=example.com

# 导入一个站点
sudo webinoly -backup=local -import -file=/folder/name

# 导入并覆盖现有网站
sudo webinoly -backup=local -import -file=/folder/name -overwrite=on

也支持多个站点和子目录中的 WordPress 安装:

# 导出多个站点
sudo webinoly -backup=local -export=[example.com,example.org,example.net]

# WordPress 子目录安装
sudo webinoly -backup=local -export=example.com -subfolder=/test

由于 Let’s Encrypt (certbot) 的限制,无法从特定站点导出/导入 SSL 证书。但是,如果导出/导入的是整个服务器,则可以迁移所有证书。

对于 WordPress 站点,系统会自动包含数据库备份。 在导出/导入时,您可以使用 -skip-db 参数来排除数据库。此外,您可以为导出的文件指定自定义文件名和路径:-filename=test.bkp -destination=/folder

导出站点时不会包含外部数据库。 您可以导出/导入站点,站点的配置信息会得以保留,因此与外部数据库的连接应该会自动建立。 如果您需要备份外部数据库,可以按照下一节中的详细说明轻松创建数据库备份。

数据库备份

#localbackup

您可以随时对任何数据库或 WordPress 网站进行数据库备份,备份文件将保存在您服务器的本地存储空间中。

sudo webinoly -backup=local
# WordPress 网站示例
sudo webinoly -backup=local -wp=example.com

# WordPress 多站点
sudo webinoly -backup=local -wp=[example.com,example.org,example.net]

# WordPress 子目录安装
sudo webinoly -backup=local -wp=example.com -subfolder=/test

# 自定义备份输出目标目录
sudo webinoly -backup=local -wp=example.com -destination=/folder

# 限制本地备份文件的最多数量,并将备份文件发送到 S3 存储库。
sudo webinoly -backup=local -wp=example.com -destination=/folder -max=5 -bucket=bucketname/folder

* “max”选项会删除目标目录中的所有文件。

如果您的 WordPress 网站连接到外部数据库,系统会要求您输入用户名和密码。 要跳过这些步骤,您可以使用 -external-db=[user,pass] 选项。

# 使用数据库名称的示例
sudo webinoly -backup=local -dbname=db_name

# 多个数据库
sudo webinoly -backup=local -dbname=[db_name1,db_name2,db_name3]

# 全部数据库
sudo webinoly -backup=local -dbname=all

# 外部数据库
sudo webinoly -backup=local -dbname=db_name -external-db=[user,pass,url:port]

要将备份文件保存为特定名称,可以使用 -filename=db.sql 参数。

使用 AWS S3 进行增量备份

对任何目录进行增量备份,并将其发送到 S3 存储库

根据需要,创建任意数量的备份配置:

sudo webinoly -backup=s3
  • 我们使用新的 Boto3 后端来连接 S3。
  • 不支持创建存储桶。
  • 仅支持较新的域名式存储桶。
  • 不支持从 Glacier 存储类别恢复数据。

在进行备份之前,您需要拥有对 S3 服务具有完全访问权限的 IAM 凭证。

sudo webinoly -aws-s3-credentials
# 跳过询问(无人值守)
sudo webinoly -aws-s3-credentials=[aws_access_key_id,aws_secret_access_key]

# 创建新的 S3 备份配置文件
sudo webinoly -backup=s3 -profile=name -bucket=bucketname/folder -source=/folder -max-age=2M

# 对于与 IAM 角色关联的 AWS EC2 实例
# 这样一来就不需要在服务器上保存凭据
sudo webinoly -aws-s3-credentials=awsiamrole

对于兼容 S3 的服务(非 AWS):

# 支持与 S3 兼容的服务,例如 Backblaze 或其他任何服务。
sudo webinoly -aws-s3-credentials=[key_id,app_key]

# 创建新的备份配置文件
sudo webinoly -backup=s3 -profile=name -bucket=bucketname/folder -source=/folder -s3-compatible-endpoint=https://s3.compatible-endpointURL.example.com

可选 -max-age 参数,用于指定旧备份保留的时间范围, 默认值为 1M,格式为秒、分、小时、天、周、月、年 (s, m, h, D, W, M, Y)

运行新的备份:

sudo webinoly -backup=s3 -run

删除现有配置:

sudo webinoly -backup=s3 -delete

列出备份配置:

sudo webinoly -backup=s3 -list

显示现有配置信息:

sudo webinoly -backup=s3 -info

恢复或找回最新的备份:

sudo webinoly -backup=s3 -restore

如果您要在不同的服务器上恢复数据,只需创建相同的配置文件, 并使用相同的数据指向相同的 S3 存储桶即可。

Webinoly 在恢复数据时绝不会覆盖现有数据,这是为了保护您的数据而做出的设计选择。 因此,在主机上恢复前,目标目录实际必须不存在。

# 备份恢复单个文件
sudo webinoly -backup=s3 -restore=/folder/file.exe -destination=/folder/file.exe

# 备份并恢复特定目录
sudo webinoly -backup=s3 -restore=/folder -destination=/folder

# 从特定日期恢复备份
sudo webinoly -backup=s3 -restore -destination=/folder -date=2020/4/27

# 支持的日期格式:
2020-01-25T07:00:00+02:00 (full date time)
2020/3/5 (YYYY/MM/DD)
12D (12 days ago)
1h78m (1 hour 78 minutes ago)

您始终可以使用 -profile=name 来跳过询问交互。

使用 -add-db-pre 选项,您可以在执行选定的 S3 配置文件之前,配置对现有 WordPress 数据库进行自动备份。

sudo webinoly -backup=s3 -add-db-pre=example.com
# 示例
# 每次运行 S3 配置文件备份时,都会进行数据库备份。
# 本地数据库备份目录中最多保留 5 个文件。
# 此外,还会将数据库备份发送到另一个 S3 存储桶。
# 现在数据库备份存储在三个不同的位置:本地目录(默认)、S3 备份配置文件和数据库专用 S3 存储桶。

sudo webinoly -backup=s3 -add-db-pre=example.com -max=5 -bucket=bucketname/folder

* 请记住,根据需要您可以使用 -filename=test.bkp -destination=/folder 命令指定输出位置。

** Duply是Webinoly用来自动化所有备份的工具,它可支持前置/后置脚本。请参阅 Duply 文档.

如果您的网站连接到外部数据库,则只有在您使用 -external-db-save 选项保存了数据库凭据后,才能使用 -add-db-pre 选项。详情请参阅此处

# 列出已配置的 PRE 备份
sudo webinoly -backup=s3 -add-db-pre -list

# 删除所有 PRE 备份文件。
sudo webinoly -backup=s3 -add-db-pre -purge

将文件发送到 S3

将单个文件发送到 AWS S3:

sudo webinoly -backup=s3 -send-to-s3=/file -bucket=bucketname/folder

也支持兼容 S3 的服务:

sudo webinoly -backup=s3 -send-to-s3=/file -bucket=bucketname/folder -s3-compatible-endpoint=https://s3.compatible-endpointURL.example.com

Datadog 集成

#datadog

译者注:已经弃用

Datadog 是一家外部服务提供商,通过基于 SaaS 的数据分析平台来监控服务器和应用程序。

sudo webinoly -datadog

您只需提供一个API密钥,Webinoly就会自动在您的服务器上安装和配置Datadog代理,包括与Nginx、PHP-FPM、MySQL和Redis的集成,以及服务器上托管的每个服务和每个站点的日志。

# 示例:
# 完整安装
sudo webinoly -datadog

# 仅安装代理程序,不安装集成组件或日志功能。
sudo webinoly -datadog=123456789 -integrations=off -logs=off

# 设置集成(nginx、fpm、mysql、redis)
sudo webinoly -datadog -integrations=nginx

# 删除集成
sudo webinoly -datadog -integrations=nginx -purge

# 配置集成日志 (on/off)
sudo webinoly -datadog -integrations=nginx -logs=on

请记住,为了查看服务器的集成数据,您需要在 Datadog 帐户中手动安装每个集成(通过“集成”菜单)。此外,对于“日志”功能,您的 Datadog 帐户需要拥有包含“日志管理”功能的有效订阅计划。

要彻底从服务器上移除 Datadog,请执行以下步骤:

sudo webinoly -datadog -purge

更新、修改或重置服务器设置

#server-settings

这是一项高级功能,只有当您了解此类修改可能对服务器行为产生的影响和后果时,才应该进行此类修改;否则,我们建议您保持默认配置。

便携化:将所有复杂的自定义堆栈配置需求集中到一个配置文件中,并分发给所有开发人员。 这样,您的团队就可以复制并使用相同的标准化开发环境。了解更多关于如何导出/导入堆栈的信息。

Webinoly 的配置文件位于此处: /opt/webinoly/webinoly.conf

配置文件

  • Operating System
    • Timezone (date.timezone)
    • Kernel Optimization
    • Percentage of RAM assigned to /run folder
    • Size of Swap file
    • IAM Role (AWS Credentials)
  • Nginx
    • Nginx Branch (stable/mainline)
    • Maximum Upload file size (client_max_body_size, upload_max_filesize, post_max_size)
    • Email Address
    • SFTP Access for www-data user
    • Nginx Access Logs
    • Nginx Log Format
    • Nginx Error Log Level
    • Nginx Default Response
    • Admin Tools Access
    • Admin Tools Access Port
    • HTTP Authentication Whitelist IP
    • Block IP Access
    • Block/Deny files and extensions
    • FastCGI Cache times
    • WordPress FastCGI Cache Defaults
    • WordPress Login Basic Authenticantion
    • WordPress XMLRPC
    • HTTP Headers
      • Cache Control
      • Content Security Policy
      • HTTP Strict Transport Security (HSTS)
      • Permissions Policy
      • Referrer Policy
      • X-Content-Type-Options
      • X-Frame-Options
      • X-Robots-Tag
      • X-XSS-Protection
  • PHP
    • PHP Version
    • Process Manager (pm)
    • Number of child processes to be created (pm.max_children)
    • Maximum amount of memory that a script is allowed to allocate (memory_limit, opcache.memory_consumption)
    • Maximum time in seconds a script is allowed to run before it is terminated (max_execution_time, request_terminate_timeout, fastcgi_read_timeout)
    • Maximum number of files allowed to be uploaded simultaneously (max_file_uploads)
    • PHP How many input variables may be accepted (max_input_vars)
    • PHP OpCache Validate Timestamps (opcache.validate_timestamps)
    • PHP OpCache Revalidate Frequency (opcache.revalidate_freq)
    • Path_Info
    • Redis maximum amount of memory before eviction policies (maxmemory)
  • MySQL
    • Database Engine
    • MySQL/MariaDB Version
    • External DB Credentials to use instead of localhost
    • Default Database User Privileges
    • General Log (general_log)
    • Binary Log (log_bin, log_bin_index)
    • Slow Query Log (slow_query_log)
    • Long Query Time (long_query_time)
    • Public/External Access

对 Webinoly 配置文件进行任何修改后,您都应该运行 -server-reset 命令使更改生效。 此命令可以更新特定软件包的配置(例如 osnginxphpmysqlall),使用方法如下:sudo webinoly -server-reset=php。如果尚未安装这些软件包(组件),则在安装时会自动加载配置值;如果已安装,则会更新当前配置,并且用户手动进行的任何更改都将丢失。

此外,-server-reset选项可以在许多不同的情况下使用,例如当您想要恢复默认配置、或者移除您可能手动进行的意外更改时。

  • 当您更新硬件配置(例如增加内存)后,您可以使用服务器重置功能来更新服务器配置,使其采用新的配置值。
  • 您网站上某些目录和文件的权限/所有者将被恢复。此操作默认使用“nginx”运行,但如果您需要,也可以单独运行:sudo webinoly -server-reset=permissions
  • SWAP 文件的大小是根据可用内存量计算的。如果您需要强制 Webinoly 重新计算此值,则必须使用参数 -recalculate=on。请谨慎使用此选项,重启服务器以清除当前正在使用的 SWAP 交换内存,并确保在服务器处理实时流量时不要执行此操作,以免在卸载 SWAP 文件时发生错误。

您可使用:sudo webinoly -dynvar=<变量> -value=<数据> 来修改配置文件中的变量。 但存在一些限制,例如不允许使用空格或引号。

完整性测试

您可以随时验证与 Webinoly 和您的 Web 服务器相关的文件完整性。

sudo webinoly -verify

这将扫描所有主要文件并检查基本配置。

系统信息

#info

您可以查看 Webinoly 在您的服务器上进行的安装、配置和优化方面的所有信息。

sudo webinoly -info

通常情况下,我们会用它来调试程序,并在必要时检测任何错误。

您也可以查看 Webinoly 的版本:sudo webinoly -version(-v 或 -V)

  • Webinoly 版本 – 这是本体版本,每次对 Webinoly 命令进行改进都会发布新版本。
  • 堆栈版本 – 这是您的 Web 服务器配置的版本。我们会定期改进 Webinoly 命令,但很少修改或更新我们用于 Nginx、PHP 或服务器的配置。虽然不建议这样做,但如果您对服务器配置进行了任何手动更改,则在本次更新过程中很可能会丢失或被覆盖。

卸载 Webinoly

虽然很遗憾您做出了这样的决定,但以下命令可完全从服务器上删除 Webinoly 及其所有文件。

sudo webinoly -uninstall

笔记:

  • 此操作不会删除您的网站
  • 您的服务器配置以及已安装的软件包不会受到影响或被卸载。
  • 用于创建和管理服务器和网站的 Webinoly 命令将被移除,并且无法再使用。

如果您想重新安装 Webinoly,之前的配置将会被恢复。如果您不想在卸载过程中生成此恢复文件(彻底卸载),可以使用 -no-recovery 参数。

有关完整的 Webinoly 卸载指南,请查看我们的 常见问题解答部分

If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Community Forum.