http://www.cnblogs.com/Orgliny/p/5592186.html
http://www.jianshu.com/p/abca8e5b913b
这两个能解决大部分问题
又一个WordPress站点
http://www.cnblogs.com/Orgliny/p/5592186.html
http://www.jianshu.com/p/abca8e5b913b
这两个能解决大部分问题
用默认的或者自定义一个,不用那个啥来着就行了
第一步,制作镜像。官方镜像没有x-pack。
FROM kibana:5.6.3 ENV TIME_ZONE Asia/Shanghai RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "${TIME_ZONE}" > /etc/timezone RUN kibana-plugin install x-pack EXPOSE 5601
第二部,多节点发布
这里举例发布一个主节点,一个数据节点。
aliyun的容器里配置
elasticsearch: container_name: elasticsearch restart: always environment: - LANG=C.UTF-8 - JAVA_HOME=/docker-java-home/jre - "ES_JAVA_OPTS=-Xms512m -Xmx512m" expose: - '9200:9200/tcp' - '9300:9300/tcp' memswap_limit: 0 labels: aliyun.scale: '1' command: - elasticsearch - '-E' - cluster.name=searcher #所有节点设置成一样的 - '-E' - node.master=true #主节点true,数据节点false - '-E' - node.name=elasticsearch #节点名不能一样 - '-E' - network.host=172.19.0.27#这里需要些容器的ip否则互相找不到,而且不能加引号 - '-E' - discovery.zen.ping.unicast.hosts=172.19.0.32:9300 #互相发现的节点和ip shm_size: 0 #image: 'elasticsearch:5.6.3' #如果不装或手动装xpack的话可以用官方镜像。官方镜像安装xpack比较消内存,可能因内存不足提示killed安装失败。 image: 'xx[这里是你的镜像]x/elastic_search:0.1.0' memswap_reservation: 0 volumes: - esdata1:/usr/share/elasticsearch/data kernel_memory: 0 mem_limit: 0
在springcloud里网关做的路由,隐藏了微服务的名称。
单发现无论怎么设置host和basepath都没效果,结果发现是版本的坑
用2.6.1是可以的2.7设置无效。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
在springboot中使用缓存是很随意的,dao中能加缓存 service中能加缓存,crontroller中都能加缓存。
但如果把springcloud包引入后会发现缓存不能随便用了,只能在dao层中使用
别的层如果还想用缓存注解尝试过把核心库中一个jar换成早期测试版可以办到。。。但这样会让微服务间无法正常请求数据。
目前只能在dao中使用缓存
参数设置方式只能是root.args[0],root.args[0].id 这种,不能用其他的别名
java.util.zip.ZipException: invalid LOC header (bad signature)
多半是maven的jar有损坏的,可以删除maven中所有的jar文件,然后重新Build一次。
在阿里云部署springboot项目发现异常。在测试服是正常的,正式服使用了aliyun的redis服务
异常:
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR unknown command config
应该是阿里云对redis进行了限制
需要增加:
@Configuration
public class RedisConfig {
@Bean
public static ConfigureRedisAction configureRedisAction() {
return ConfigureRedisAction.NO_OP;
}
}
使用场景是想做图片裁剪,直接传oss
基本步骤:
1,图片裁剪,产生base64字符串,略
2,base64转blob
3,blob添加到表单
4,ajax上传
具体:
/** * 将以base64的图片url数据转换为Blob * @param urlData * 用url方式表示的base64图片数据 */ function convertBase64UrlToBlob(urlData){ var bytes=window.atob(urlData.split(',')[1]); //去掉url的头,并转换为byte //处理异常,将ascii码小于0的转换为大于0 var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for (var i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } return new Blob( [ab] , {type : 'image/png'}); }
3添加到表单:
var formParam = new FormData(); formParam.append("file",convertBase64UrlToBlob(base64Codes));
4,ajax提交:
$.ajax({ type: 'POST', url: host , data:formParam , ...
OSS需要额外增加授权:具体参考官方例子
额外传这些参数:
formParam.append("key",g_object_name); formParam.append("policy",policyBase64); formParam.append("OSSAccessKeyId",accessid); formParam.append("success_action_status",'200'); formParam.append("signature",signature);
phabricator 报如下错误
Replicating Master
Database host “[数据库地址]” is configured as a master, but is replicating another host. This is dangerous and can mangle or destroy data. Only replicas should be replicating. Stop replication on the host or reconfigure Phabricator.
然后发现原因是RDS自动做了主从备份,据说还是双向,而且无法关闭。
只能从程序下手了,搜索代码发现在
switch ($ref->getReplicaStatus()) { case PhabricatorDatabaseRef::REPLICATION_MASTER_REPLICA: break;<----新增的 $message = pht( 'Database host "%s" is configured as a master, but is replicating '. 'another host. This is dangerous and can mangle or destroy data. '. 'Only replicas should be replicating. Stop replication on the '. 'host or reconfigure Phabricator.', $ref->getRefKey());
https://secure.phabricator.com/source/phabricator/browse/master/src/applications/config/check/PhabricatorDatabaseSetupCheck.php;326d5bf8004ece51fbb44146766f5ddf765f1159
这个文件的174行左右判断验证了
然后我在case后直接写了个break,绕过了验证,反正是可以用了
php-fpm.conf或者php-conf.d/www.conf里有这样的配置
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
docker里设置后外部无法访问。
改成:
listen = 9000
;listen.allowed_clients = 127.0.0.1
所有ip可用,如果涉及到安全问题,需要单独设置ip.