老李

tio官网部署非官方指北

发表于:2019-3-6 9:59:23 点击量:0 赞:未知

tio官网部署指北

本指北仅就linux环境、从letsencrypt获取ssl证书分享一点个人踩坑经验。

properties

  1. access-url*(定义role和url映射进行权限管理,在管理端扩充role、user管理后可实现细粒度的权限管理),按你扩充系统的实际进行调整就好。
  2. app-env(服务运行环境配置)部分要修改配置的地方

    ;程序运行模式:1、开发,2、测试,3、生产环境

    dev.mode=1

    ;是否启动flashpolicyserver,1:启动,2:不启动
    ;用flash与服务器交互时,会用到,譬如基于flash的播放器 (jwplayer等)

    start.flash.policy.server=2

    ;网站地址 域名,带https

    site=https://k.foxcodes.cn

    ;1、用户通过http-api服务器上传的文件会存在这个目录下
    ;2、用户访问这些资源只通过nginx访问,并不经过http-api服务器
    ;3、对照upload.t-io.org.conf一起理解,此值与upload.t-io.org.conf文件的”server -> location -> root”配置值一样
    ;4、upload.t-io.org.conf在all工程的resources文件夹中,此处大概率要修改

    location / {
            root /home/www/upload;
            index  index.html index.htm;
            etag        on;
    

    res.root=/home/www/upload

    ;用于维持tio http session的cookie name,可以不用修改
    ;1、如果开发环境和测试环境的主域名一样,不同环境建议设置不同值,这样同时访问两个环境时cookie不会相互干扰(建议修改)

    http.session.cookie.name=tio_lys_session

    ;视图资源目录,包含html, js, css, 图片等,其中非myres目录下的html、js、css是支持freemarker的(此处大概率修改,部署是我们需把all/target/tio-sitex-all下的所有文件上传到服务器,此处应修改为 tio-site-all所在目录/config/config/page)

    http.view.page=/home/www/config/config/page

    ; cookie域名,生产环境应该是.t-io.org

    http.cookie.domain=.foxcodes.cn

    数据库相关必改不赘述

  3. app.host

    ; 有域名则配域名,(最好域名)
    my.ip=k.foxcodes.cn
    ;file of keystore,如果以classpath:开头,则从classpath中查找,否则从文件路径中查找
    ;不建议打包到jar,方便证书重置,因为我是从letsencrypt获取的半年期的ssl certificate
    ssl.keystore=/home/www/k.foxcodes.cn.jks
    ssl.truststore=/home/www/k.foxcodes.cn.jks
    ; password for keystore
    ssl.pwd= 在生成jks时设置并记录在此

  4. app
    默认就好,但是注意把服务器的9325端口的tcp开放。相关端口如果还有修改,请注意nginx.conf需对应修改。

    http.api.port = 6060
    http.view.port = 10160

  5. logback
    默认就好。

    log.dir=/logs/tio-sitex ;注意运行应用的用户要有读写权限
    mkdir -p /logs/tio-sitex
    chown && chmod

nginx 配置相关

  1. nginx.conf

    1、建议建议加上
    user www; #你的nginx运行用户,建议跟启动应用的用户一致
    2、如果不想你的freemarker模板暴露,
    set $pagesdir /home/www/config/config/page;
    此处的目录可以跟模板的位置不一致。我这里暂时图方便
    3、若使用letsencrypt,以下需按证书替换说明进行配置替换
    ssl_certificate cert/cert-1541497818718
    .cn.crt;
    sslcertificate_key cert/cert-1541497818718.cn.key;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384….
    4、注意开放日志端口,如果修改了相关 location root配置,看日志子站也需相应调整

  2. upload.t-io.org.conf
    主要是证书和location root的调整,此处若使用了七牛云等云存储服务,就无需配置。先挖一个坑。

证书申请和配置

  1. 前提:有域名,目标服务器上安装了certbot(安装方式参照官网,ubuntu和centos下毫无压力)
  2. 用于证书申请的nginx.conf
    ```json
server {
    listen 80;
    server_name k.foxcodes.cn;
    location /{
        root /tmp/cert;#可以777
    }
}

server {
    listen 80;
    server_name res.foxcodes.cn;
    location /{
        root /tmp/cert;
    }

}
注意该配置文件中不要出现非ascii字符
3. 启动或重启nginx
```c
nginx -t
nginx -s reload
  1. 以root权限执行 certbot —nginx , 按提示即可

  2. 查看nginx.conf,自动添加了类似下面的内容

ssl_certificate /etc/letsencrypt/live/k.foxcodes.cn/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/k.foxcodes.cn/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

以上内容可以直接拷贝替换证书相关配置

  1. 进入到证书存储的地方 /etc/letsencrypt/live/domain(你的域名),执行以下步骤

    1、
    openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out pkcs.p12 -name NAME
    2、keytool -importkeystore -deststorepass SAMEPASSWORD -destkeypass SAMEPASSWORD -destkeystore keystore.jks -srckeystore pkcs.p12 -srcstoretype PKCS12 -srcstorepass SAMEPASSWORD -alias NAME

注意SAMEPASSWORD替换成你的密码,并将app-host.properties文件相应的地方进行修改。
把生成的keystore.js拷贝到你的应用有权读的目录下,并将绝对路径配置到app-host中,如下:

ssl.keystore=/你的.jks
ssl.truststore=/你的.jks

最后

感谢谭总的付出,启动请参考谭总官方指南。有问题群里交流。

TCP连接数:, IP数:
    发 送