-
Notifications
You must be signed in to change notification settings - Fork 127
进阶设置
Timothy edited this page Dec 2, 2017
·
12 revisions
使用Caddy配置域名访问 使用Systemd管理go-ignite进程
通常情况,你会配置自己的域名来访问相应的服务。如果服务器上80,443端口已经占用,你需要配置反向代理访问到ignite服务使用的5000端口,ignite-admin服务使用的8000端口。
如果服务器上80,443端口并未占用,这里提供一种简单的容器化Caddy服务方式来绑定域名。定义caddy服务:
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
修改示例Caddyfile配置的域名和邮箱。
ignite.xxxx.com {
tls your@email.com
proxy / localhost:5000 {
transparent
}
}
ignite-admin.xxxx.com {
tls your@email.com
proxy / localhost:8000 {
transparent
}
}
通过设置容器的environment来覆盖默认的配置项,这里列举可以配置的环境变量。
- ignite
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
sqlite3
-
DB_CONNECT -- 数据库连接字符串,默认
./data/ignite.db
-
HOST_ADDRESS -- 展示在用户界面上的SS的连接IP,默认
localhost
-
HOST_FROM -- 创建SS容器的起始可用端口范围,默认
5001
-
HOST_TO -- 创建SS容器的截止可用端口范围,默认
6000
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
- ignite-admin
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
sqlite3
-
DB_CONNECT -- 数据库连接字符串,默认
../ignite/data/ignite.db
-
AUTH_USERNAME -- 管理用户名,默认
admin
-
AUTH_PASSWORD -- 管理密码,默认
123
-
Auth_SECRET -- 生成JWT Token的秘钥,默认
123
-
DB_DRIVER -- 数据库驱动,sqlite3/mysql,默认
通常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