终端登录VPS延迟太高?试试Mosh

把服务器迁到日本后,比较坑的一个问题出现了,虽然日本离中国这么近,ping的延迟还是有好几百毫秒,HTTP访问机器上的服务倒是没什么影响,但是 ssh 登录到终端问题就来了, ssh 采用 TCP 方式建立连接,并且每输入一个字符,都需要等待其服务端返回确认后才能发送下一个字符,再加上网络可能会有丢包什么的情况,造成的后果就是,输入任何一条命令,都会一卡...一卡...一卡...... Mosh 可以认为是高延迟网络环境下 ssh 的一个替代选择,Github上star 6K 多还是挺屌的,Mosh采用UDP的方式进行通信。好了,我一共就知道这么多。 Mosh除了不会再卡了,Mosh还有一个显著的优点,是即使断网Mosh的也不会断开,因为毕竟是通过UDP进行数据传输,并没有建立实际上的连接。 来看看具体怎么使用吧。 在服务器上启动 mosh-server, 在自己的设备上用 mosh 去连,和 ssh 看起来是一样的。 mosh [user@]host 使用起来总体感受还是很顺畅的,起码输命令不会卡了。 更多的细节,…

Shadowsocks Manager:分享VPS的闲置流量

最近把自己服务器从阿里云迁到了Vultr, 不比不知道,差不多的配置价格便宜了差不多一半,而且还有各种新用户充值活动,的确划算。 还有常年有效的个人邀请码,http://www.vultr.com/?ref=7157325,新用户下单后各奖励10$,还是很不错哦。 我选择的是日本机房的节点,每月5$,提供1000G流量,日本距离中国也比较近,速度还是相当不错的。感觉博客打开的速度比以前用阿里云还要更快一些呢,哈哈。 说到正题,我在之前的一篇博客里分享过一个用shadowsocks搭建翻墙服务的方法,这次的主角 shadowsocks manager 正是一个开源的shadowsocks管理系统,通过它能实现帐号管理、流量控制、订单管理等功能。由于中国大陆目前的特殊国情,市场上存在大量提供翻墙服务的商家,其中很大一部分都采用了通过shadowsocks来实现翻墙的方式,我想这其中又有很大一部分还是基于shadowsocks manager 做的二次开发。 shadowsocks manager 项目地址: https://github.com/shadowsocks/shadowsocks-manager 如果觉得觉得部署麻烦的话,当然,还可以用这个现成的 Docker 镜像,虽然我稍微改了一点点界面:…

Docker + PHPStorm 搭建虚拟化开发环境

从 PHPStorm 2016.3 版本起, PHPStorm 对 Docker 提供了更友好的支持. 在之前的版本中, 想在 PHPStorm 中使用 Docker 容器内的 PHP 解释器(interpreter)来调试代码是比较麻烦的, 我们需要在 Docker 容器内安装并启动 sshd 服务(由于一个 Docker 只能服务单个进程, 还需要借助 supervisord 等进程管理工具来实现), 再配置 PHPStorm 通过 ssh 的方式访问容器内的 PHP 解释器. 不过现在, Docker 已成为了 PHPStorm 的一等公民. 那么是时候和 Vagrant 说再见, 投入 Docker 的怀抱啦. 当然, 如果你还是更喜欢…

用Elasticsearch搭建一个全文搜索服务

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 (百度百科) 准备工作 在Docker容器中运行 Elasticsearch 并安装 elasticsearch-head 管理工具, 注意将 Elasticsearch 的 9200 9300 端口映射到宿主机, 并将 config 及 plugins 目录挂载到宿主机. docker-compose.yml 配置: version: '2' services: elasticsearch: image: elasticsearch:5.2.0 container_name: med-news-es-dev ports: - "9200:9200"…

在浏览器中实现RTMP推流

什么是RTMP 引用自Adobe官方说明: RTMP(Real-Time Messaging Protocol) 是为了能在基于Adobe Flash平台的技术间实现音频、视频及数据的高性能传输而设计的,包括Adobe Flash Player和Adobe AIR。现在,RTMP已经可以被作为一项开放的标准,用于那些支持视频、音频及其他数据传输的产品或技术,只要传输的数据格式能与Adobe Flash Player适配(如swf、flv、f4v等)。 关于RTMP推流 “视频直播”是近两年互联网产业里很火的一个版块,大大小小的视频网站、APP层出不穷,而RTMP是目前市面上实现视频直播所采用的最主流的数据传输方式。常规的方式是,视频主播通过OBS等推流软件将摄像头捕捉的视频通过RTMP协议传输到指定的服务器地址,服务器将接收到的视频流以m3u8格式保存下来,客户端再通过拉取RTMP数据流的方式获取到视频数据并播放。 以上所描述大概就是一个基本的视频直播模型。那么,如果想要直接在浏览器中向RTMP服务器推流又该如何实现呢?这也并非难事,目前市面上大部分浏览器都可以很好的支持Flash,别忘了,RTMP技术正是为了Flash而生的!只需要几行简单的ActionScript代码,我们就能轻松搞定。 ActionScript & Flex Flex是Adobe官方提供的一款ActionScript开发框架,Flex提供了丰富的API,并能将ActionScript编译成可被Flash Player执行的swf文件。在开始工作之前,…

软件服务化——把应用交给Docker吧

在传统的应用部署实践中,我们需要在应用发布之前在服务器上准备好其所需的环境(如项目所依赖的库、语法解释器、Web容器等),Docker则为我们提供了一种更优雅的方式来解决这一问题。 什么是Docker Docker可以帮助你把项目应用及相关所有依赖打包成一个标准化的单元。Docker容器是由Docker提供的虚拟化环境,在一个Docker容器中包含了运行项目所需的一切:代码、系统库、其他软件,总之,包括了你可以在服务器上安装的一切。 为什么用Docker Docker的意义就在于将运行项目所需的外部依赖统统作为项目的组成部分包含在项目下的一个Docker配置文件中,通过它我们可以直接让项目在Docker中运行起来,这样的做的好处是显而易见的: 1. 不再需要提前在服务器上安装及配置项目所依赖的环境 2. 降低项目在开发过程中,开发环境不断迭代更新的成本以及搭建项目环境的成本 3. 多个应用在同一台服务器运行时,可以方便的隔离环境,避免依赖冲突 4. 所有项目都运行在Docker的虚拟容器中,物理机干干净净!爽!! 实践 Docker容器为应用提供了独立的运行环境,Docker提供了一组命令行工具,让我们可以方便的对Docker容器进行管理。对于非Linux的平台,我们还需要先安装docker-machine(这相对于一个linux虚拟机),再将docker容器放在docker-machine中。 docker-compose是Docker提供的另一个非常有用的管理工具,我们可以通过定义docker-compose的配置文件,对多个Docker容器统一进行管理。下是一个docker-compose.yml文件的例子: version: '2' services: mysql: image:…