Skip to content

进阶设置

Timothy edited this page Dec 8, 2017 · 12 revisions

使用Caddy配置域名实现HTTPS访问

使用Systemd管理go-ignite进程

使用Caddy配置域名实现HTTPS访问

通常情况,你会配置自己的域名来访问相应的服务。如果服务器上80,443端口已经占用,你需要配置反向代理访问到ignite服务使用的5000端口,ignite-admin服务使用的8000端口。

如果服务器上80,443端口并未占用,这里提供一种简单的容器化Caddy服务方式来绑定域名,并快速实现HTTPS方式访问。

定义caddy服务:

  1. 修改并保存示例Caddyfile配置的域名和邮箱。
ignite.xxxx.com {
    tls [email protected]
    proxy / localhost:5000 {
        transparent
    }
}

ignite-admin.xxxx.com {
    tls [email protected]
    proxy / localhost:8000 {
        transparent
    }
}
  1. 编辑如下docker-compose.yml文件
version: '2'

services:
  caddy:
    container_name: caddy
    image: abiosoft/caddy
    volumes:
      - "./certs:/etc/caddycerts"
      - "./Caddyfile:/etc/Caddyfile"
    ports:
      - 80:80
      - 443:443
    network_mode: "host"
    restart: always
    environment:
      CADDYPATH: /etc/caddycerts

最后,docker-compose up -d 即可快速部署Caddy Server。Caddy Server启动后,将自动为你申请SSL证书,从而实现对站点的HTTPS方式访问,省去手动申请SSL证书的麻烦。

使用Systemd管理go-ignite进程

注:此方法仅适用于手动部署

通常nohup启动的程序,会随着程序运行异常,或者服务器重启后,程序退出而终止运行,通常我们会使用upstart/systemd/supervisor来作为系统守护进程,来管理我们的应用程序,这样在程序异常退出,或者服务器重启后,程序会自动启动并运行。这里介绍如何用Systemd来管理go-ignite进程。

在ignite和ignite-admin的daemon目录中,能分别找到ignite.service 和 ignite-admin.service 配置模板,将它们分别拷贝到系统 /lib/systemd/system

修改配置模板中的几个关键配置项:

WorkingDirectory=/path/to/ignite
ExecStart=/path/to/ignite/executable
User=root
  • WorkingDirectory: 程序工作目录,指向ignite或者ignite-admin所部署的目录
  • ExecStart: 可执行程序路径,指向ignite或者ignite-admin可执行程序路径
  • User: 程序运行时所使用的系统账户,可根据系统已有账户进行修改,请注意,改账户必须有权限访问ignite或者ignite-admin部署目录,并且改账户应当加入系统docker用户组,这样才有权限与docker进行交互。

配置完成后,分别enable ignite与ignite-admin的service,并启动:

sudo systemctl enable ignite && sudo systemctl start ignite
sudo systemctl enable ignite-admin && sudo systemctl start ignite-admin