保持Caddy运行 |
您所在的位置:网站首页 › linux重新启动系统服务 › 保持Caddy运行 |
保持Caddy运行
虽然Caddy可以通过直接使用它的命令行界面成功运行,但使用服务管理器来保持它的运行有很多好处,例如确保它在系统启动时重新启动,并捕捉stdout/stderr日志。 Linux服务 单元文件 使用服务 手动安装 重写 Windows服务 Docker Compose Linux服务推荐使用我们的官方systemd单元文件,在带有systemd的Linux发行版上运行Caddy。 单元文件我们提供了两个不同的systemd单元文件,你可以根据你的使用情况来选择: 使用[Caddyfile](/docs/caddyfile)配置Caddy:caddy.service。如果你喜欢使用JSON配置文件,你可以覆盖 ExecStart和ExecReload命令。 通过API配置Caddy:caddy-api.service。 这项服务使用--resume选项,它将使用默认保存(persisted)的autosave.json启动Caddy。 它们非常相似,但在ExecStart和ExecReload命令中有所不同,以适应工作流程。 如果需要在服务之间切换,应该先禁用和停止前一个服务,然后再启用和启动另一个服务。例如,要从caddy服务切换到caddy-api服务: sudo systemctl disable --now caddy sudo systemctl enable --now caddy-api 使用服务如果使用Caddyfile,你可以用nano,vi或者你喜欢的编辑器来编辑你的配置: sudo nano /etc/caddy/Caddyfile你可以把你的静态站点文件放在/var/www/html或/srv中。确保caddy用户有读取文件的权限。 查询服务是否正在运行: systemctl status caddystatus命令还将显示当前运行的服务文件的位置。 当使用我们的官方服务文件运行时,Caddy的输出将被重定向到journalctl。为了阅读你的完整日志,避免行数被截断: journalctl -u caddy --no-pager | less +G如果使用一个配置文件,你可以在做任何改变后优雅地重新加载Caddy: sudo systemctl reload caddy你可以使用下面的命令停止服务: sudo systemctl stop caddy 不要直接停止服务然后再来修改Caddy的配置,因为这会产生停机时间。请使用reload命令。Caddy进程将作为caddy用户运行,它的$HOME设置为/var/lib/caddy。这意味着。 默认的[数据存储位置](/docs/conventions#data-directory)(用于证书和其他状态信息)将在/var/lib/caddy/.local/share/caddy。 默认的配置存储位置(用于自动保存的JSON配置,主要对caddy-api服务有用)将在/var/lib/caddy/.config/caddy。 手动安装一些安装方法自动设置Caddy作为服务运行。如果你选择的方法没有这样做,你可以按照这些指示来做。 要求: 下载或从源代码构建的caddy二进制文件 systemctl --version版本至少为232 sudo权限把caddy二进制文件移到$PATH目录,比如: sudo mv caddy /usr/bin/检查是否能正常工作: caddy version创建一个叫caddy的群组: sudo groupadd --system caddy创建一个有可写权限家目录的caddy用户: sudo useradd --system \ --gid caddy \ --create-home \ --home-dir /var/lib/caddy \ --shell /usr/sbin/nologin \ --comment "Caddy web server" \ caddy如果有配置文件,需要确保caddy用户具有刻度权限。 接下来,选择一个满足使用需求的systemd单元文件。 仔细检查ExecStart和ExecReload指令。 确保二进制文件的位置和命令行参数对你的安装来说是正确的!例如:如果使用一个配置文件,如果你的--config路径与默认值不同,请改变它。 通常保存服务文件的地方是: /etc/systemd/system/caddy.service。 保存好服务文件后,你可以用通常的systemctl方式来首次启动服务。 sudo systemctl daemon-reload sudo systemctl enable --now caddy验证它是否正在运行。 systemctl status caddy现在,你已经准备好使用服务了 覆盖覆盖服务文件各个方面的最好方法是使用这个命令: sudo systemctl edit caddy这将用你的默认终端文本编辑器打开一个空白文件,你可以在其中覆盖或添加指令到单元定义。这被称为"插入式"文件。 例如,如果你需要定义环境变量用于你的配置,你可以这样做: ```systemd [Service] Environment="CF_API_TOKEN=super-secret-cloudflare-tokenvalue"或者,例如你需要将配置文件从Caddyfile的默认值改为使用JSON文件(注意Exec*指令必须在设置新值之前用空字符串重置)。 [Service] ExecStart= ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/caddy.json ExecReload= ExecReload=/usr/bin/caddy reload --config /etc/caddy/caddy.json然后,保存文件并退出文本编辑器,并重新启动服务使之生效: sudo systemctl restart caddy Windows服务用这些说明在Windows上把Caddy安装成一个服务。 要求: 下载或从源代码构建的caddy.exe二进制文件。 任何来自WinSW服务封装器(以下服务配置是为v2.x版本编写的)最新版本的.exe。将所有文件放入一个服务目录。在下面的例子中,我们使用C:\caddy。 将WinSW-x64.exe文件重命名为caddy-service.exe。 在同一目录下添加一个caddy-service.xml。 caddy Caddy Web Server (powered by WinSW) Caddy Web Server (https://caddyserver.com/) %BASE%\caddy.exe run yyyy-MM-dd现在你可以用以下方式安装该服务: caddy-service install你可能想启动Windows服务控制台,看看该服务是否正确运行: services.msc请注意,Windows服务不能被重新加载,所以你必须直接告诉caddy进行重新加载: caddy reload重启可以通过正常的Windows服务命令进行,例如通过任务管理器的 "服务 "标签。 关于定制服务包装器,请参见WinSW文档。 Docker Compose使用Docker启动和运行的最简单方法是使用Docker Compose。以下只是摘录,更多细节请参见Docker Hub上的文档。 首先,创建一个文件docker-compose.yml(或者把这个服务添加到你现有的文件中): version: "3.7" services: caddy: image: caddy: restart: unless-stopped ports: - "80:80" - "443:443" volumes: - $PWD/Caddyfile:/etc/caddy/Caddyfile - $PWD/site:/srv - caddy_data:/data - caddy_config:/config volumes: caddy_data: caddy_config:确保在中填写最新的版本号,你可以在Docker Hub的 "Tags "部分找到。 然后,在docker-compose.yml旁边创建一个名为Caddyfile的文件,并写下你的Caddyfile配置。 如果你有静态文件需要服务,你可以把它们放在配置旁边的site/目录中,然后把root指令设为/srv/。如果你不这样做,那么你可以删除/srv卷装载。 然后,你就可以启动这个容器了: docker-compose up -d在对你的Caddy文件进行修改后,要重新加载Caddy: docker-compose exec -w /etc/caddy caddy caddy reload查看caddy的日志: docker-compose logs caddy |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |