-
Notifications
You must be signed in to change notification settings - Fork 18
DeployGuide
wxa edited this page Jul 14, 2017
·
19 revisions
server {
listen 80;
server_name dev.keepwork.com *.dev.keepwork.com;
location / {
proxy_pass http://127.0.0.1:8900;
include proxy_params;
}
}
server {
listen 80;
server_name test.keepwork.com *.test.keepwork.com;
location / {
proxy_pass http://127.0.0.1:8099;
include proxy_params;
}
}
server {
listen 80;
server_name ~.*;
if ($host = "www.keepwork.com") {
rewrite ^(.*) http://keepwork.com$1 permanent;
}
location / {
proxy_pass http://127.0.0.1:8088;
include proxy_params;
}
}
KEEPWORK["config"] = {
-- key is env name
-- 默认配置
["default"] = {
-- 第三方服务配置
["threeService"] = {
["qq"] = {
["client_secret"] = "qq_client_secret",
},
["github"] = {
["client_secret"] = "github_client_secret",
},
["xinlangweibo"] = {
["client_secret"] = "xinlangweibo_client_secret",
},
["gitlab"] = {
["host"] = "gitlab_host",
["token"] = "gitlab_token",
},
}
},
-- 测试环境配置
["test"] = {
}
}
clientID的配置在前端app.js文件配置,均采用标准的oauth2认证,详细配置参考相关代码
目前在252上运行了3个KeepWork WebServer,分别为keepwork.com(正式环境), test.keepwork.com(测试环境), dev.keepwork.com(开发环境) 正式与测试环境基本一致且需要打包,开发环境不需要打包用于程序开发,可以建立sftp链接,上传文件到dev环境相关位置进行调试开发。
# dev.keepwork.com
cd /root/wikicraft/ # 进入项目目录
git pull origin wxa_dev # wxa_dev为相关的开发分支 冲突可直接重置 git reset --hard HEAD
./start.sh restart dev # 重启程序, 可以不重启应该可以自动生效
# [test.]keepwork.com
cd /root/keepwork/ # 进入项目目录
git pull origin master # 拉取maste分支 冲突可直接重置 git reset --hard HEAD
./start.sh build # 打包前端代码
./start.sh restart test # 重启测试环境
./start.sh restart rls # 重启正式环境
# xxx.dev.keepwork.com # 子开发环境
# wxa.dev.keepwork.com 为例:
1. 创建代码分支wxa_dev
2. cd ~/keepwork_code; git branch wxa_dev origin/wxa_dev # 创建对应本地分支
3. cd ~/wikicraft; bash dev_env.sh wxa_dev wxa # wxa_dev为代码分支名 wxa自定义环境名,避免和它人相同
4. 使用wxa.dev.keepwork.com访问自环境 # wxa为第三步指定的环境名
# 上述为部署最新代码步骤, 若只是重启程序直接执行重启命令即可
不同环境有自己的日志文件, 开发(dev_log.log), 测试(test_log.log), 正式(rls_log.log). 重启程序会将旧的日志文件备份到log/env_log_datetime.log (env为环境简写dev,test,rls, datetime为%Y-%m-%d_%H_%M_%S.log), 并将日志文件中<runtime错误日志追加至log/env_error.log文件中
- nginx日志:
/var/log/nginx
- keepwork.com日志:
/root/keepwork/rls_log.log
- test.keepwork.com日志:
/root/keepwork/test_log.log
- dev.keepwork.com日志:
/root/wikicraft/dev_log.log
测试状态可以这样配置。 qiankunew.com 作为CDN域名, keepwork.com作为源站(或直接用IP)。等测试完毕,再反过来, keepwork作为CDN域名, qiankunew.com 作为源站域名。
网宿CDN CNAME与规则配置 (按优先级如下):
- git.qiankunew.com --> git.keepwork.com (121.14.117.253)
正则表达式(以下匹配不包含query string
?
中的内容):- 包含/raw/master且存在后缀名为png,jpeg, jpg, gif, webp图片文件缓存1年
- 包含/raw/master的缓存5分钟
- 只包含/raw/的缓存1年
- 其它全部不缓存
- dev.qiankunew.com ---> dev.keepwork.com(121.14.117.252) 正则表达式:全部不缓存 (用于内部测试)
- qiankunew.com --> keepwork.com(121.14.117.252)
正则表达式:
- 无后缀的全部不缓存。
- 所有有后缀的文件并且后面有?bust=或?ver=(包含?的内容缓存1年),不限于
js,css,png,jpg,svg,woff2
- 其他文件缓存10分钟
- *.qiankunew.com --> *.keepwork.com(121.14.117.252) 同上
- update.keepwork.com --> *.page不缓存, 所有其它内容全部缓存1年,
- ps.keepwork.com --> 内容全部缓存1年
- ps1.keepwork.com --> 同上
- ps2.keepwork.com --> 同上
- ps3.keepwork.com --> 同上
- ps4.keepwork.com --> 同上
- ps5.keepwork.com --> 同上
- ssh.keepwork.com 指向 git.keepwork.com (121.14.117.253)所在IP。 用于gitlab的SSH登录,避免受到CDN DNS的影响
dev.qiankunew.com. IN CNAME dev.qiankunew.com.wswebpic.com.
git.qiankunew.com. IN CNAME git.qiankunew.com.wswebpic.com.
.qiankunew.com. IN CNAME wsall.qiankunew.com.wswebpic.com.
qiankunew.com. IN CNAME qiankunew.com.wswebpic.com.
- 121.14.117.251 os.keepwork.com (测试)
- 121.14.117.252 *.keepwork.com
- 121.14.117.253 git.keepwork.com
- 121.14.117.228 centOS
- 121.14.117.229 centOS
- 121.14.117.230 centOS