Webinoly 设定(webinolys 命令)
Webinoly 设置
使用 “Webinoly ”命令可以对全局配置进行修改和管理,也可以对Web服务器的某些方面进行查询。我们将详细介绍该命令的使用方法。
命令格式:
sudo webinoly <选项>
选项:
- -backup
- -blockip
- -cache-valid
- -clear-cache
- -custom-headers
- -datadog
- -db-import
- -dbpass
- -default-site
- -dynvar
- -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-upgrade 或 dist-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 从缓存中排除
如果存在此 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-cache和skip-cache始终位于头部(在query-string-cache-default之后)。最终结果取决于它们的输入顺序。query-string-never-cache和skip-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
* 您可以手动配置任何受 Duply 与 Duplicity 支持的备份,如: 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 命令使更改生效。
此命令可以更新特定软件包的配置(例如 os、nginx、php、mysql 或 all),使用方法如下: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.