Study hard and make progress every day!

2018-11-15
在Amazon Linux和Elastic Beanstalk中安装ffmpeg的方法

因为项目需要,需要在EC2和EB中安装FFMPEG来处理视频。

但Amazon Linux默认的yum源中没有FFMPEG,因此需要手动进行安装。

网上有各种的安装方法,有使用Nux Dextop YUM的安装,也有直接使用Static Builds的方式。经过比较试验,最终决定使用Static Builds的方式进行安装,安装方法记录如下。

阅读此文

2018-09-15
使用ssh隧道访问内网资源

简介

日常开发过程中,会遇到一些情况需要和对端机构或公司进行联调。此时有可能会需要访问对端机构内部的一些网页或API。

正规流程中,要访问内网,如果对端机构有VPN服务,应该是申请一个VPN来进行操作,这种方式比较安全可靠。但实际操作过程中,可能对端机构没有VPN服务,或者走VPN流程繁琐。此时如果你有对端机构中某个内网Linux机器的ssh登陆权限,而且该Linux机器可以可以访问相关网页或者API,则可以通过ssh tunnel的方式,临时来访问对端机构的内部资源。

接下来,通过使用两台EC2来模拟内网环境,来介绍如何在Mac机器上使用ssh tunnel访问内网资源。

搭建说明

搭建模拟用的EC2

首先,开启两台EC2,一台用来模拟ssh的跳板机(Jumpbox),一台用来模拟内部网页服务器(HttpServer)。

阅读此文

2018-08-11
由于EC2中no space left引起的EB警报

问题现象

周末早上突然收到大量Elastic Beanstalk的警报邮件,提示一个跑Rails的EB环境中有大量的请求是HTTP 5xx。

登陆AWS Console查看相关Event,已经有持续的WARN提示有大量的HTTP 5xx请求。
amounts_of_5XX_on_EB_event

解决过程

使用EB console下载了各个Instanc的日志,仔细进行排查。

最后在一个Instance的Rails log中发现有请求提示No space left on device。原来是Instance的磁盘满了,导致了部分需要写临时文件的请求失败了。

1
2
3
F, [2018-08-11T02:10:43.084147 #11559] FATAL -- :
Errno::ENOSPC (No space left on device @ rb_sysopen - /var/app/current/tmp/cache/rack%3A%3Aattack%3A306790688%3Alocations%2Fip%3A46.229.168.8120180811-11559-4156fj):
app/middleware/catch_json_parse_errors.rb:8:in `call'
阅读此文

2018-05-21
macOS 10.13.2下SSH命令Invalid key length错误的原因

升级到Macos 10.13.2后,使用ssh以key方式登陆一个12年配置的服务器的时候,ssh命令报告了Invalid key length的错误。

很是纳闷,服务器和本地的key都是配置好后就没动过的,key pair本身肯定没问题啊,怎么会报错了呢?

原因

Google了一下,发现是MacOS使用的OpenSSH版本升级到了7.6,小于1024bits的RSA keys已经不被支持了。

使用ssh-keygen查看了一下public key,发现是1023bit的。所以ssh时候报了Invalid key length的错误。

阅读此文

2018-05-10
macOS 10.13 High Sierra读写NTFS移动硬盘

系统升级到10.13后,没用过移动硬盘,所以一直也没发现以前装的osxfuse+ntfs-3g在系统更新后已经失效了。结果么在要使用的时候发现悲剧了,在10.13中没法写NTFT格式的移动硬盘了。

上网搜了一下,How-To Geek上面有一篇文章,详细讲述了Macos下挂载NTFS移动硬盘的几种方法,有收费方案也有免费方案,并比较了每个方案的优缺点。 虽然文章是基于macOS 10.12 Sierra的,但各个方案的优缺点同样适用于10.13。How to Write to NTFS Drives on a Mac

阅读此文

2018-04-25
Mac下几个处理图片的命令

简述

Macos下,查看图片,默认就是使用Preview。Preview基本包含了普通人能用到的各种功能。
但有时候需要批量处理图片时,常规的GUI工具会显得不太方便,使用命令来操作能够更快捷高效。下面介绍几个Macos下和图片相关的几个命令。

查看图片尺寸

系统自带file命令

在命令行下查看图片的分辨率,可以直接使用Macos自带的file命令即可。

阅读此文

2018-04-24
豆瓣图片403问题

起由

发布了一版blog到github上。偶然间发现豆瓣页面中书的图片都无法显示了。打开Inspector调查了下,发现请求豆瓣图片的链接返回的都是403 Forbidden。
douban_image_403.png

网上搜索了一下,可能的原因就是豆瓣为了封杀微信小程序在页面上直接请求豆瓣的图片,封杀了图片的外链。

原因

尝试着将豆瓣API返回的图片链接拷贝到浏览器中直接访问,发现可以加载图片,那估计豆瓣是通过检测HTTP Request中的referer Header来实现防盗链。

阅读此文

2018-04-21
S3进阶系列(二) ——权限管理

什么是S3的权限管理

S3的权限管理是任何使用S3的人都无法绕开的功能,决定了S3中的Object是否能够被访问。

权限管理本质上解决了这么一个问题: 谁(Principal)能够在何种条件(condition)下被允许或拒绝(Effect)对哪些资源(Resource)做何种操作(Action)

阅读此文

2018-04-19
如何去除SSH key中的passphrase

去除passphrase的方法

使用ssh-keygen来重新设置一个空的passphrase, 就相当于去除了原来的passphrase, 答案来自stackoverflow, 回答者还很贴心的提示,输入的passphrase会被记录在~/.bash_history中,别忘记处理这个情况。

1
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

阅读此文

2018-04-18
S3进阶系列(一) —— S3基础知识

前言

S3是AWS服务最早推出的几项服务之一,也是使用最为频繁的几个AWS服务之一。官网文档以及网上文章零零散散看了不少,实际使用中也用过S3的大多数功能,但“纸上得来终觉浅,绝知此事要躬行”,决定给自己挖个坑,结合已读资料和实际使用经验,系统地来梳理一下S3的已有功能。

本篇是第一篇,介绍一下S3的一些基础知识。希望能够坚持把这个系列写完。

阅读此文