星D裤子 - 2016年6月
type: channel
link: https://test.newdecode.com/index.php/2016/06/
description: Only if you can speak MEOW ...
items: openresty 学习笔记番外篇:rabbitmq
items: openresty 学习笔记一:环境安装
items: Hyper-V 安装 Centos + Xware
items: Pandorabox 放弃迅雷远程
items: 新入Newifi，刷PandoraBox

openresty 学习笔记番外篇:rabbitmq
type: item
date: 2016-06-30T00:12:00+08:00
description: 之所以要捣鼓这个，一方面是规划lua与redis交互后把redis与mysql的同步事务通过MQ发布出去。其他程序订阅该频道后去处理写入mysql的操作。另一方面，在实际情况中进程会遇到需要通过消息队列来处理各个环节间的延迟和阻塞带来的影响。MQ的集群可扩展性、跨语言开发也确实很吸引。在对比各个MQ平台后，对可靠性和成熟程度、各种语言的支持库和各种MQ协议的支持。最终选择rabbitMQ。Centos7 安装 rabbitmqyum安装法安装erlangwget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm yum localinstall erlang-19.0.4-1.el7.centos.x86_64.rpmwget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el7.noarch.rpm rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc ###需要先导入key yum install rabbitmq-server-3.6.9-1.noarch.rpm启动rabbitmqsystemctl daemon-reload systemctl enable rabbitmq-server systemctl start rabbitmq-server.service若启动失败检测端口是否被占用4369 (epmd), 25672 (Erlang distribution)5672, 5671 (AMQP 0-9-1 without and with TLS)15672 (if management plugin is enabled)61613, 61614 (if STOMP is enabled)1883, 8883 (if MQTT is enabled)参考：http://www.rabbitmq.com/install-rpm.htmlRabbitMQ Server 配置复制一份完整的示例配置，只要把其中想要配置的部分注释去掉并根据自己的情况进行更改就可以了cp /usr/share/doc/rabbitmq-server-3.6.2/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config vim /etc/rabbitmq/rabbitmq.config参考：http://www.rabbitmq.com/configure.html添加web管理插件rabbitmq-plugins enable rabbitmq_management配置主要在配置文件的rabbitmq_management部分进行添加，比如对web界面的端口和允许访问的IP进行限制{rabbitmq_management, [ {listener, [{port, 15671}, {ip, "127.0.0.1"} ] } ] },添加STOMP适配器rabbitmq-plugins enable rabbitmq_stomp配置方面可以修改,地址限制和端口还有默认用户等等{rabbitmq_stomp, [ {tcp_listeners, [{"127.0.0.1", 61613}] } ] },RabbitMQ 日志、用户、client日志目录 /var/log/rabbitmq默认virtual host与默认uservirtual host: /user:guestpasswd:guest默认用户只可在localhost上连至/且有全部权限添加用户命令rabbitmqctl add_user admin admin rabbitmqctl set_user_tags admin administratorSTOMP v1.2Stomp是一个简单的消息文本协议,它的设计核心理念就是简单与可用性，官方文档： http://stomp.github.io/stomp-specification-1.2.htmlrabbitmq安装了stomp适配器后支持该协议，下面先了解该协议的基本流程框架。先采用 centos 的netcat 进行调试yum install nc 1.CONNECT 建立连接当 Client 向 Server 发送一个CONNECT Frame，就向服务器发起了一个连接请求，此时服务器端返回一个CONNECTED Frame表示建立连接成功,还可以发起连接可…

openresty 学习笔记一:环境安装
type: item
date: 2016-06-27T02:09:00+08:00
description: openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台，其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。性能之高与具体内容就不贴了，官网介绍很详细了对我而言，我是觉得在nginx上加上这个lua的扩展来处理网关，路由和鉴权甚至加解密都是是非常合理的，这些工作在nginx就处理好，后端类似php程序等只管业务实现和界面展示，整个系统的架构也变得非常清晰。加上openresty 的性能还不是一般高的话就非常有可用性了。学习的第一步是搭建环境。以下教程是在centos上编译安装openresty，php，redis，mysql的全部过程编译前的准备工作//设置时区和NTP rm -rf /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime yum install -y ntp ntpdate -u pool.ntp.org date //关闭selinux sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config //安装编译环境 cp /etc/yum.conf /etc/yum.conf.bak sed -i 's:exclude=.*:exclude=:g' /etc/yum.conf yum -y install wget flex patch bison unzip tar vim-minimal gettext gettext-devel unzip file screen yum -y install make cmake gcc gcc-c++ gcc-g77 yum -y install curl curl-devel libcurl libcurl-devel yum -y install kernel-devel gd gd-devel libtool-libs //一些依赖库 yum -y install libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel yum -y install libxml2 libxml2-devel libXpm-devel yum -y install glib2 glib2-devel yum -y install libevent libevent-devel yum -y install openssl openssl-devel net-tools yum -y install psmisc libc-client-devel yum -y install ca-certificates c-ares-devel libicu-devel yum -y install ncurses ncurses-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel yum -y install libxslt libxslt-devel bzip2 bzip2-devel yum -y install gmp-devel pspell-devel libcap diffutils yum -y install libtool autoconf zlib zlib-devel yum -y install readline-devel yum -y install pcre-devel还有几个需要编译安装的。这些依赖包很多都是为了添加一些扩展功能//上传安装libiconv-1.14.tar.gz 和相关补丁libiconv-glibc-2.16.patch tar xzvf libiconv-1.14.tar.gz cd libiconv-1.14 patch -p0 < ../patch/libiconv-glibc-2.16.patch ./configure --enable-static make && make install cd ../ //上传安装libmcrypt-2.5.8.tar.gz tar xzvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure make && make install /sbin/ldconfig cd libltdl/ ./configure --enable-ltdl-install make && make install ln -s…

Hyper-V 安装 Centos + Xware
type: item
date: 2016-06-05T18:16:00+08:00
description: 要在windows上做迅雷远程，可以很简单，就安装个迅雷客户端就好了。作为设备添加进去。那么一样可以通过手机迅雷或者在网页版远程下载去添加下载任务。但是，问题是这样是无法通过另一台电脑使用PC端客户端添加远程下载任务的。因为迅雷账号是无法多地登陆的。为了解决这个蛋疼的问题，我还是决定在虚拟机上安装Centos，再通过Xware运行迅雷远程。安装Hyper-V在windows server 2012 R2 添加角色和功能安装Centos准备好Centos的IOS，新建虚拟机，虚拟机类型选旧的类型就好，新的Centos7以上才支持。安装基本按默认，添加提个虚拟交换机和正常安装Centos基本一样，然后换下更新源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum update挂载windows磁盘文件夹本来想通过nfs v4挂载windows下的NFS共享文件夹，结果还是失败，最终用回samba，也省得麻烦去搞NFS安装cifs工具并进行挂载yum install cifs-utils mount -t cifs //xx.xx.xx.xx/centos /mnt -o uid=1000,gid=1000,username=xxx,password=xxx,codepage=cp936,iocharset=utf8设置开机自动挂载 vim /etc/fstab//xx.xx.xx.xx/centos /mnt cifs uid=1000,gid=1000,username=xx,password=xxx,codepage=cp936,iocharset=utf8 0 2运行Xware解压Xware1.0.31_x86_32_glibc.zip,并运行就可以了。./portal运行后返回code，去绑定就可以了后续结果迅雷远程是运行起来了，但提交总是未知失败。百度了许久，好像挂载cifs都不能成功。只好弄回nfs，仔细查了下资料，server 2012 R2 自带的nfs服务是V3，而且缺少对utf8的支持。只好还是安装HaneWin，只能用administrator用户安装，安装后设置只用V3和添加UTF8支持并添加共享文件夹Centos上挂载NFSyum install nfs-utils mount -t nfs -o nolock 10.0.0.200:/NFS/ /nfs设置开机自动挂载，编辑/etc/fstab在末尾添加xx.xx.xx.xx:/nfs /nfs nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0设置开机自动启动xware，编辑/etc/rc.d/rc.local，添加/home/xware/portal

Pandorabox 放弃迅雷远程
type: item
date: 2016-06-05T09:01:00+08:00
description: 原本想把迅雷离线在路由上做，但我不希望直接插存储设备到路由，所以下载路径问题困扰了许久。既要在liunx下可以挂载，又希望下载后windows也可以共享出来。最终的尝试是用windows通过NFS或samba共享文件夹，linux下进行挂载，但都存在问题。路由下安装迅雷离线是非常简单的，在迅雷论坛下载对应版本的xware，比如newifi是Xware1.0.31_mipsel_32_uclibc.zip，而centos是Xware1.0.31_x86_32_glibc.zip下载后解压运行就文件夹中的profil就可以了。可能会有提示需要什么依赖库，看提示安装就好了。我可能之前已经有安装过cpp所以是可以正常运行的第一次运行会返回code，可以在迅雷远程进行绑定了。如果是在路由器上直接插存储设备，那完全没问题了，可是我是需要下载到windows server的磁盘上。 于是我在windows server安装了NFS服务端，在newifi上安装客户端和进行挂载opkg install nfs-utils kmod-fs-nfs kmod-fs-nfs-common mount -t nfs -o nolock XX:XX:XX:XX:/NFS/ /nfs这样是可以挂载，但问题是这样是NFS V3的，在linux下保存的编码是UTF-8,而windows下服务端没有这种编译可选。所以要么要安装第三方软件，不然就会两边各自保存的中文互相看到都是乱码的。听说NFS V4就可以解决这个问题。我有尝试用-t nfs4，但提示协议不支持，也搞不清楚是windows服务端不支持（听说2012R2的NFS服务端是支持NFSV4.1的）还是pandorabox不支持（但明明已经有mount.nfs4的命令）。反正一头雾水也就罢了。那我通samba就是了，既然潘多拉支持做samba服务端，那做客户端应该也没问题吧mount -t cifs -o username="用户名",password="密码" //主机地址/共享文件夹 /挂载点结果提示没有该device，而且默认源里也没有cifs的相关软件包安装。好吧我投降。就这样，折腾不下去了，而且其实Xware占用内存和CPU对于路由来说是比较高的，也就罢了。还是在windows 上做迅雷远程吧

新入Newifi，刷PandoraBox
type: item
date: 2016-06-01T20:27:00+08:00
description: 这款叫Newifi的路由，貌似换了几个大老板。之前叫如意云，然后又和百度勾搭上，现在是联想旗下。不过貌似一直都是一家叫谛听科技的公司。不过这款newifi mini Y1就硬件配置来看性价比还是很无敌的联发科的 MT7620AMT7612E 2T2R千兆无线芯片，双频WIFI16M的ROM128M内存带一个USB2.0，两个LAN和一个WAN口京东降价79元入手。试用官方系统官方的系统几个版本都有很大差异，最低的版本很多应用都已经失效了，刷了2.1版本的试用了下。这个版本是最接近PandoraBox的，特别是高级设置模式，基本就是潘多拉了（其实官方系统也就是潘多拉改的）。3.0版本的刚更新不久，应用很多还不支持，界面好看了，但是貌似没有高级设置模式，只能通过SSH进行一些高级配置。官方系统的最大问题就是应用都要装到外接存储设备上。那也确实16M的rom能装几个luci的应用。所以都是插上U盘就自动在U盘分个120M的分区，挂载opt目录去放这些应用。二来，系统自带的应用我是不需要的。比如samba共享，视频监控等。而且很搞笑的是，安装其他应用要外接存储设备，那视频监控要插USB摄像头，这样就非要接个USB HUB才可以了。我希望这个路由就单单做路由好了，加个花生壳(内网)的客户端，顶多以后可能还需要用它来做打印机共享或者加个VPN功能。刚开始有考虑迅雷远程，折腾了两天，因为种种问题和考虑就改变想法了。毕竟我有一台windows在做NAS+HTPC了，其他很多功能还是不希望加重这个小路由的负担。刷机步骤我没有去刷不死uboot，始终觉得uboot还是不要乱动。uboot对性能也没什么影响，而且我也不是刷路由爱好者，我只是希望把路由按我的需求进行改造而已，基本就刷这么一两次。直接用官方自带的uboot就可以刷潘多拉了。上电前按紧复位键，再上电，等到电源灯长亮和USB，2.4G灯闪亮就可以放开复位键，这个时候路由进进入uboot了。电脑网线连接路由，电脑IP设置192.168.1.X，浏览器访问192.168.1.1，选择潘多拉的bin文件，我刷的是PandoraBox-ralink-mt7620-y1-squashfs-sysupgrade-r1024-20150608.bin。然后点击恢复，就开始刷机了。等待刷完，路由会重启。这时候电脑IP改为自动获取，再浏览器访问192.168.1.1就进入路由管理页面。初始密码admin。进入后台把不需要的服务停掉，比如samba，ftp。把该设置的设置，无线SSID名称，密码，上网设置等。弄好后就可以正常使用了。安装花生壳内网版潘多拉已经有DDNS的功能，但是现在很多时候（就像我贪便宜用长宽），我们pppoe获取到的并不是公网地址，而是上一级路由分配的地址。那传统的DDNS是无法使用的。花生壳内网版官方是没有发布支持openwrt的版本的。我是从官方提供给newifi的应用安装包xipk里面解压出ipk再解压出相关的可执行文件，并自己写了脚本来运行的。先要在软件包安装c++依赖库，可以直接在后台进行查找安装。也可以SSH进行安装opkg update opkg install libstdcpp把 oraynewph.zip 在linux下通过scp传到路由tmp目录下。或者其实也可以先不关潘多拉的ftp，通过ftp上传也可以。通过SSH连接路由。在根目录下创建opt/app目录，解压oraynewph.tar.gztar zxvf oraynewph.tar.gz把整个oraynewph文件夹移动到/opt/app。第一次运行和查看序列号sh ./oraynewph.sh start sh ./oraynewph.sh status然后就可以去官网（http://b.oray.com/ SN就刚才查看的序号，默认密码admin），登陆后设置新密码和绑定你自己的花生壳账号。设置好再查看状态已经是绑定状态了。添加开机自动启动进入oraynewph文件夹后，把oray2nat移动到/etc/init.d目录下，并给予777权限,再建立软连接到rc.dmv oray2nat /etc/init.d chmod 777 /etc/init.d/oray2nat ln -s /etc/init.d/oray2nat /etc/rc.d/S99oray2nat安装WOL远程唤醒可以通过后台查找软件包安装，也可以SSH进去安装opkg install etherwake安装好后，可以在SSH下输入命令进行唤醒，需要指定电脑所在局域网的接口：etherwake -i br-lan XX:XX:XX:XX:XX:XX定时重启直接在SSH下配置crontab就可以了,比如每天5点重启路由crontab -e …