EFS – Elastic File System

EFS相比EBS有一些优点 Troubleshooting 在ubuntu 20下面mount的时候出现了下面的错误 mount: /home/ubuntu/efs: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program. 看了mount命令确实是存在的 重新装一下就可以了 mount的时候可能会timeout mount.nfs4: Connection timed out 需要看一下 EFS → network → security group 是不是允许ec2所在网络访问 NFS/TCP/2049 端口 mount成功后, 可能不能写文件 这可能是因为sudo mount后, 目录的owner是root, 修改owner就可以了

S3 Glacier

S3 Glacier 可以廉价地用于存储一些不常用的存档或备份文件,但它只能通过命令行或者代码操作archive 文件, aws console不提供操作archive的功能 ,尝试了一下, Glacier并没有bucket的概念,在console里也找不到文件存在哪里, 所以不是很直观, 而s3也提供了3种Glacier archive storage classes 如果选择 S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage class, 文件仍然保存在 Amazon S3. 不能通过Amazon S3 Glacier service访问到. Amazon S3 支持在bucket上设置 lifecycle, 可能改变文件的 storage class S3 Glacier – Vault 是 archive文件的一个集合, 一个vault可以包含多个archive文件, 通过vault也可以设置一个sns来接收retrive状态的变化, 例如当archive-retrieval job完成时, 可以开始下载文件,而s3可以通过 Properties → Event notifications ********来设置restore状态变化的通知 … Read more

通过ssh tunnel和nginx从外网访问本地服务

在某些情况下, 需要让外网能够访问本地正在开发的网站, 例如做微信开发,微信API接受消息的url必须是外网可访问的地址,我们不可能每次修改代码再发布到外网服务器进行调试,通常可以通过ngrok来实现,使用ngrok就不需要拥有自己的外网服务器,但ngrok有时候还是有点慢, 而且每次地址都会变,当然也有国内的类似服务如natapp, natapp免费版本有各种限制,想想也不好用,虽然我也没用过。 但如果有一台外网服务器, 那么通过ssh tunnel和nginx就可以轻松实现从外网访问local的服务,这样就不用每次都发布到外网服务。下面将讲解如何实现。 前提条件:有一台外网可以访问的服务器 基本思路: 通过ssh建立一个通道,把远程外网机器上的一个端口和本地的端口建立起一个连接,远程机器机器上的那个端口的访问请求通过ssh tunnel转到本地机器的端口,而本地机器的这个端口也就是你web服务的端口,例如apache/tomcat/nginx的80或8080端口,这样就使得本地机器可在外网可以访问了 例如你的外网机器可以通过myhost.com访问(或者直接使用ip也可以),在本地机器运行如下命令: ssh -nNT -R 8000:localhost:80 user@myhost.com 上面的命令就建立起了外网机器8000端口和本地机器80端口的通道,当访问外网机器8000端口时, 请求会被ssl tunnel转到本地机器的80端口,这样就已经实现了我们的目的,但是… 微信官方明确要求: 微信公众号接口只支持80接口 不知道为什么腾讯要做这个限制,但我们肯定不愿意一台机器唯一的宝贵80端口只用来做微信开发,好在nginx可以解决这个问题,配置如下: server { listen 80; server_name myhost.com www.myhost.com; root /var/www; location /wechat/ { rewrite /wechat/(.*) /$1 break; proxy_pass http://127.0.0.1:8000; error_log /var/www/logs/wechat_error.log; access_log /var/www/logs/wechat_access.log; } } 这样80端口还是可以用于其它的网站,url包含/wechat/的请求会被转到8000端口, 然后再转到本地机器的80端口, 在微信开发平台就可以大致设置url为http://myhost.com/wechat/receive, 相对应的本地localhost/receive用于接受微信的消息。 使用ssh tunnel和nginx相比于ngrok的好处有: 1. … Read more

gem install – error : Connection reset by peer

sudo gem install cocoapods ERROR:  Could not find a valid gem ‘cocoapods’ (>= 0), here is why:           Unable to download data from https://rubygems.org/ – Errno::ECONNRESET: Connection reset by peer – SSL_connect (https://rubygems.org/latest_specs.4.8.gz) 上面这个错误可能是由于GFW引起了, 所以把source rubygems.org改成baobao.com就可以了 $ gem sources –remove https://rubygems.org/ $ gem sources -a https://ruby.taobao.org/ $ gem sources -l *** … Read more

php null empty

NULL The special NULL value represents a variable with no value. NULL is the only possible value of type null. A variable is considered to be null if: it has been assigned the constant NULL. it has not been set to any value yet. it has been unset(). empty empty — Determine whether a variable … Read more

LruCache为什么需要保存到RetainFragment, why need RetainFragment?

看了android 文档里的bitmapfun例子, 一开始怎么都不明白为什么需要把LruCache放到fragment里面, 后来再仔细回头看了看文档: Runtime configuration changes, such as a screen orientation change, cause Android to destroy and restart the running activity with the new configuration (For more information about this behavior, see Handling Runtime Changes). You want to avoid having to process all your images again so the user has a smooth and fast experience … Read more

dedecms 不支持 php 5.4.6

dedecms 使用了php方法session_register, 而在php 5.4.X里已经把这个方法去掉了, 所以为了使用dedecms目前最高版本只能用到5.3.X, 我目前用的dedecms版本是V5.7正式版(2012-06-21).

windows browser not using hosts file – but ping is ok

if you are using proxy to connect the network, the hosts file may not work for browser, but the ping is ok, ping will return the correct ip address you set in hosts file,i haven’t found a solution to make it working, since if not set the proxy, network will totally not work. hosts文件为什么对浏览器没用呢,而ping返回来的又是正确的IP呢? 有可能是你正在使用代理上网, … Read more