Skip to content
wxa edited this page Jul 14, 2017 · 19 revisions

Deploy Guide

服务器配置

nginx配置

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;
        }
}

webserver secret配置(文件路径:/www/wiki/helpers/config.page)

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

GitLab 数据源规则

CDN 原则

测试状态可以这样配置。 qiankunew.com 作为CDN域名, keepwork.com作为源站(或直接用IP)。等测试完毕,再反过来, keepwork作为CDN域名, qiankunew.com 作为源站域名。

网宿CDN CNAME与规则配置 (按优先级如下):

  • git.qiankunew.com --> git.keepwork.com (121.14.117.253) 正则表达式(以下匹配不包含query string ?中的内容):
    1. 包含/raw/master且存在后缀名为png,jpeg, jpg, gif, webp图片文件缓存1年
    2. 包含/raw/master的缓存5分钟
    3. 只包含/raw/的缓存1年
    4. 其它全部不缓存
  • dev.qiankunew.com ---> dev.keepwork.com(121.14.117.252) 正则表达式:全部不缓存 (用于内部测试)
  • qiankunew.com --> keepwork.com(121.14.117.252) 正则表达式:
    1. 无后缀的全部不缓存。
    2. 所有有后缀的文件并且后面有?bust=或?ver=(包含?的内容缓存1年),不限于js,css,png,jpg,svg,woff2
    3. 其他文件缓存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 --> 同上

DNS

  • 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.

Server Usage

  • 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
Clone this wiki locally