命令行
这个页面描述了如何使用Caddy的命令行界面。要想快速查看命令和默认值,请使用-help
或-h
,例如:caddy -h
。
请牢记,Caddy可以独立运行,这些标识只是给你更多控制权。
标识
AUTO
= 推荐在自动化环境中使用
-agree AUTO
这表示你已阅读并同意Let‘s Encrypt用户协议。如果没有指定这个标识,那么在运行过程中,Caddy将提示你同意条款。因此推荐使用此标识。
-ca
证书颁发机构的ACME服务器的URL。用于创建TLS证书。
-catimeout
更改ACME CA HTTP超时。通常这是不需要的,除非你的网络在链接之ACME CA 服务器的时候有明显延迟。在这种情况下,提高这个的值能得到改善。 默认为10s
.
-conf
Caddy的配置文件Caddyfile必须为有效路径,不论是相对路径或绝对路径。
-cpu
CPU使用上限。可以使百分比(例如“75%”)或指明要使用多少核心(例如3)等数字。
-email AUTO
如果未在Caddyfile中指定用于生成TLS证书的邮箱。这并不是必须的。但是如果你丢失了你的密钥,这可以恢复你的账户。Caddy可能会在运行的时候提示你输入邮箱.如果在Caddyfile中没有指定,建议自动化环境中使用这个选项。
-grace
在正常的关机中,如果你频繁重新加载(每秒多次)请缩短这个的时间。语法与Go的time.ParseDuration (5s, 1m30s, 等)相同。
-help or -h
显示基本的帮助指南。Caddy在显示帮助后便会终止,他不用于网站服务。
-host
默认监听的主机名或ip地址
-http2
支持HTTP/2 。 通过设置false来禁用他。在使用加密连接时必须使用WebSockets。
-log AUTO
启用进程日志。该值必须为日志文件,stdout或stderr的路径。如果日志文件不存在。Caddy会自动创建日志文件。这个文件用于记录运行是产生的信息和错误。当日志文件变大时,会分割文件,所以你不必担心。
-pidfile AUTO
要写入的pidfile。用于自动化环境部署,Caddy将会创建一个包含当前进程ID的文件
-plugins
列出Caddy可用的插件。
-port
默认监听的端口。
-quic
启用实验性QUIC支持,请查阅QUIC的wiki页面了解更多关于QUIC的细节。
-quiet
静音模式,在这个模式下,Caddy将不会打印信息化输出,只会输出服务器的地址
-revoke
要撤销SSL证书的主机名。Caddy将会在完成撤销后停止服务。如果使用这个选项,它将不会服务网站。证书需由Caddy管理。撤销仅适用于受影响的私钥,不要撤销证书以及续订。
-root
默认网站根目录的路径
-type
更改服务器类型。默认值为http。如果Caddyfile使用了另外一种服务类型,请使用此项设置服务类型。
-validate
解析Caddyfile并退出。如果语法正确,将会打印信息并输出到日志(如果有),并且将以0 状态退出。如果不是,将会返回一个非0的状态错误。
-version
版本信息。它还会输出构建信息。
信号
在POSIX兼容系统上,Caddy可以使用信号控制。在这里我们列举出一些。
TERM
强制退出进程,不执行关闭连接。
INT
执行关闭后强制退出进程。这是在Windows上唯一能用的信号(ctrl+c)。第二个SIGINT强制立即终止,即使仍在运行。
HUP
正常停止服务器,但是不执行关闭连接。
QUIT
在执行关闭连接后正常停止服务器。
USR1
重新加载配置文件,然后正常重新启动。
基础Caddyfile
addy还接受非标识参数,这里理解为缩写的Caddyfile文本。这对于快速搭建临时服务器是非常有用的。
$ caddy browse
在自定义端口上提供即时的Markdown文件:
$ caddy -port 8080 markdown
使用一个日志文件记录以上信息
$ caddy -port 8080 browse markdown "log access.log"
以上仅用于快速简单的配置。
管理Caddyfile文件
有能力的用户可能希望将Caddyfile的内容从编程环境中传给Caddy。如果在Caddyfile中,请使用-confflag
配置stdin
,例如:
$ echo "localhost:1234" | caddy -conf stdin
从父进程中动态生成Caddyfile文件并启动Caddy是很方便的。
警告:如果在使用一个Caddyfile文件,他将不能从stdin读取,因为在父进程中必须发送一个EOF来关闭,以便Caddy可以解除阻塞并开始服务。这将导致一些列问题,例如:如果Caddy会提示你邮件或者协议条款。所以当输入的时候,请使用stdin避免以后出现问题。
环境变量
Caddy能识别某些环境变量
HOME
主文件夹。如果使用自动化部署HTTPS,那么Caddy将会创建一个.caddy文件夹,并且可能会一直这样。
CADDYPATH
如果设置了,Caddy将会用这个文件夹来存储,而不是默认的$HOME/.caddy。
CASE_SENSITIVE_PATH
如果是0或者false。那么在当前请求访问的时候,Caddy将不会区分大小写。默认为1/true(区分大小写)。