Nginx换用Caddy

由于无聊买的50vz的NAT OVZ机器被TCP阻断,也是研究怎么通过UDP来瞎搞,但是发现V2Ray w/ mKCP会有断流的情况,虽然我极度怀疑是运营商搞的鬼,但一搜却发现有人做内网测试也是会断流……即使我升级到最新的4.2也然并卵,不过这个过程中我发现有人用Caddy搭建ws代理……于是手痒的我也把Nginx换成Caddy。

现在大概记一下,
首先是去 Caddy获取一句话安装命令,大概类似这样:

然后在shell里面执行即可,简单的通过执行 caddy -version 就能看是否装上了;
之后根据各类教程和官方文档,建两个必须的目录:

写了一个很简单的配置,大概如下:

之后安装systemctl控制脚本:

最后打开WP,登陆后台,发现古腾堡(Gutenberg)插件有报错:

一番搜索后找到解决方法,将Caddy官方建议配置中的:

换成

就可以了。

最后,既然是HTTPS站点,就顺便跑了一下SSL Labs的测试,发现评分只有A,于是又搜了一下,找到Caddy社区的一篇问答解决,评分上到A+,只需要在站点配置里面加一句:

这篇就是用古腾堡写的,感觉还是不太习惯用可视化编辑器,虽然说比自己写各种标签方便很多,但是还是觉得……少了点啥……哈哈😂

——————–
引用参考/Reference:

  1. 怡红院落:  使用 CADDY 代替 NGINX
  2. NightFarmer’s Blog:  使用新一代的Web服务器Caddy代替Nginx
  3. Diamond-Blog:  使用 Caddy 替代 Nginx,全站升级 https,配置更加简单
  4. Gutenberg@Github:  issue #8802 
  5. Caddy FORUM:  Anyone archived A+ rating on SSL Labs? 
  6. 扉启博客:  v2ray抗封锁最优配置

简单记录极壹HC6361刷OP

昨天和今天捣鼓了两台极壹HC6361的路由器,这个奇葩机器与一般的路由有点不同,跟WR703N那种直接在官方固件就可以刷入OpenWRT[1]还是略有区别的。

最早买极壹的时候,是他们宣传的『极客』和『出国加速』(你懂的),所以一开始买了两个,两个都是所谓的国际版~ 还挺贵,200多一个……后来又出了五颜六色版,我就买了个粉色绿色银色三个颜色……但是这批的就变成了『非国际版』,也就说,自带的免费出国加速服务没得了~

目的:通常,我刷OP的目的很简单,一个是固件能稳定点,一个是集成SSR,还有一个是希望集成n2n~

然后,据说根据Bootloader[2],还分为两种极壹,一种是可以随便刷固件的『老极壹』,和一种升级官方固件后Bootloader也会被升级的『新极壹』。

定义:在这里,我把固件版本大于等于9006的机器称为『新极壹』……

那么,操刀开始。
Continue reading 简单记录极壹HC6361刷OP

---------------------------------------
  1. 简称“OP” []
  2. 下文中简称“BL” []

一句话服务器

最近调试VPS需要转移文件,又不想特别去安装HTTP/FTP服务软件,于是找来了这些命令,一行可以启动一个HTTP/FTP服务器,Ctrl-C中止后服务器即停止,简单明了很方便。

1. Python

执行命令:

[YourPort] 修改为端口号即可,如80,8080等,执行命令时是把当前目录作为webroot同时支持目录遍历,貌似也没有多的参数了。

2. PHP

执行命令(PHP5.4.0+):

参数 -S 后面为监听的IP及端口, -t 后面为webroot路径,支持解析PHP脚本,不支持目录遍历,访问的时候需要同时包含完整路径。

3. Ruby

执行命令:

参数 -ehttpd 后为webroot路径, -p 后为监听端口,支持目录遍历,貌似没什么特别的功能。

4. Python/FTP

执行命令:

参数 -p 后为监听端口。这个命令运行的是一个FTP服务器,匿名登录。

-EOF-
——————–
引用参考:

  1. [渗透技巧] 一句话开启简单的服务器
  2. PHP Manual

解决SSH断线后的会话恢复

最近从vpsee\酷胖等博客看到的信息,购买了好几个廉价的VPS在学习,于是就产生了不少基于SSH的困扰,而掉线重连的会话丢失算是一个 ……

感谢GG大神的帮助,我找到了这个工具:screen
简单的说,就是这个工具会接管你当前的console会话,然后当前控制台显示的输入/输出就由它负责,如果你掉线后,只要重新启用screen,就是恢复到之前的状态。大概的操作流程如下:

  1. 以SSH的方式连接你的服务器
  2. 安装Screen;
    debian/ubuntu: apt-get install screen
    fedora/centos: yum install screen
  3. 输入screen接管当前会话;
  4. 进行自己需要的任何操作;
  5. SSH掉线;
  6. 重连SSH并输入screen -r恢复会话;
  7. 可以在.bash_profile里加一行
    alias r=’screen -d screen -ls |grep Attached|cut -f2|cut -f1 -d".";screen -r screen -ls |grep Detached|cut -f2|cut -f1 -d"."
    能够方便的切回screen窗口(假设只开了一个screen)。

恩,不是啥复杂的东西,但是能解决不小的困扰。

内容引用参考:
雨中的高速公路 – 《在ssh终端下如何解决断线带来的困扰》。

2010-03-22 小记

前几天手闲买了两个256M VPS用于学习VPS的配置,这两天有所心得,小记一下。
不好意思啦,长篇大论太辛苦了,以后要走简洁风的。

注:两个VPS分别是CenOS 5.4 32bit, Debian 5 32bit.

1. Kloxo安装脚本太傻瓜了,傻瓜到出错都不会stop

其中一个VPS购买的时候我选择了预置Kloxo,但是主机商说内存没有512M所以不予部署,好吧,我手闲自己安装一下试试就是了。下载了那个脚本之后,./kloxo-install-master.sh,开始安装。

由于是通过SSH的方式,我开着以后就没管了,从早上9点多一直到下午4点多,SSH里面一直很活跃地展现着《骇客帝国》的数字雨画面效果,我受不了了,Ctrl+C之后发现,滚屏上的文字一直都在重复,眼睛瞟到一个写着error的信息,看了一下,原来是某个PHP的模块没有卸掉,所以……很遗憾的是,我没有记下来那个没模块叫什么。

但是我比较不明白的是,为什么它error之后就一直Try again,而不是Stop让用户看看错误信息,所以那个Kloxo的安装脚本,我运行了整整6个小时,还好,主机商方面没有什么提示。其实为什么我会等这么长时间呢?因为很久很久以前,我经常连续花几天时间编译安装Gentoo Linux,这让我面对CLI的时候有足够的耐心,嘿嘿嘿~

还有,我参照的是这篇教程,感谢作者。

Tips: 要是你安装Kloxo超过30mins(国内可能不好说),请检查滚屏文字是否包含error。

2. 主机商没错,256M的VPS别装Kloxo

恩,这个确实是教训,在上面花了6个小时之后,我卸掉那个PHP模块,只用了短短几分钟Kloxo就部署好了,然后是……从VPS面板上我看到,256M的内存一直在60%~89%之间徘徊,然后Kloxo感觉一点都不快,VPS的主机CPU是4核的XEON E5520。

Tips: 服务商不一定都是忽悠你的。

3. 搞定Apache2单独用户权限配置

好吧,我承认在高中的时候朋友熊哥借过我一本Apache配置指南并且我一直都没还,但是也一直都没怎么看,基于两个VPS内存过低的原因,我开始自己配置服务器。以前的我算是轻微入门,这次又轻轻入了一点点,慢慢来咯。

今天遇到的问题就是Apache2+PHP5目录写入权限。
之前我在使用Dreamhost的时候,/home/user/public_html 755是写入可行的,但是我的VPS上表现为无法PHP写入文件,好吧,我将real_user加入apache运行组www-data后修改权限为775之后是可以的,但是我不甘心,并且同组写入在商业化虚拟机上是不可行的,并且DH上面确实是755,于是研究。

利用DH的SSH我登录上去在有限的权限内我开始翻系统的文件,我考虑到了用户组混搭[1]方面的问题,于是我实验了一个办法,并且通过了:

把用户 www-data[2] 加入 <user-private-group>

但是,反过来把 real_user 添加到组 www-data 并不能实现real_user的权限对www-data开放,除非文件的隶属组是www-data。不过问题在于,不可能主机商会让apache2的run_user加入每一个用户的私有组[3],乍一看是没什么安全问题,单向继承权限嘛,但是如果我们一些特定的文件只让Apache读取的时候,问题就来了,这肯定不适用于生产环境的。

于是我又开始GG,找到一个办法,SuExec,但是这个办法有限制:只对CGI和SSI有效,那么PHP就要以CGI的方式运行。但是,同一篇文章提到了一个模块:apache2-mpm-itk,据说效果跟效率要比SuExec好,而且配置也不复杂,在<VirtualHost>部分就可以为每个虚拟机单独配置一个读写用户。

于是在自己的Debian VPS上测试通过,~/public_html的权限为755即可,同时在相关的VirualHost配置部分加入

配置即可。
这也同时解决了我长久以来的一个疑惑:这个Apache2用一个用户/组来跑所有虚拟主机不是很危险么?不过以前没想过要认真解决掉……

请跳转参阅:
1. 使用mpm-peruser为apache的虚拟主机提供一个绝对安全的单用户进程访问机制
2. Running Vhosts With Apache2 mpm-itk On Debian

Tips: 恩,Google是个好东西。

4. 几个关键词

gpasswd -a, useradd, id, a2enmod, /etc/skel, /etc/default/useradd.
mysql -u[user] -p -h[host] database << (zcat database.sql.gz)

以后以笔记类博文为主,这样写起来没有压力,请各位见谅~

延伸阅读:
1. 10 个最酷的 Linux 单行命令
2. Debian下为Apache启用rewrite模块(htaccess)
3. URL Rewriting Guide

---------------------------------------
  1. 灵感来自犀利哥,嘿嘿,开玩笑的~ []
  2. Debian里面的Apache2默认以此用户名/组运行 []
  3. private group,私有组,用户创建时一同添加的同名组。 []

虚拟主机答疑之「绑定」

通常,我们在使用虚拟主机(Virtual Hosting)的时候,都会遇到一个问题:绑定

那么,使用过虚拟主机的你,看到绑定二字想到的是什么?

  • 只要是把域名的A记录解析到空间的IP上,这是绑定,对吧?
  • 或者
  • 只要在空间的面板上把域名加进去就好了,这是绑定,对吧?

两项操作,你觉得哪项对呢?
其实,绑定是一个双向的行为,也就说需要以上提到的两种配置相配合。
这就要稍微提到互联网的运作原理了。

原理简述:
通常,我们在浏览器里面输入一个网址(域名, Domain Name)后,浏览器会向电脑上设置的DNS(Domain Name Server)发出请求以获取该网址设定的IP,获取该网址的IP地址之后,浏览器再向反馈回来的IP发送HTTP请求,并在HTTP报文中包含host请求,而虚拟主机所属的服务器就会根据报文中的host请求返回相应的虚拟主机数据。而因为host请求的存在,我们可以在一台服务器一个IP上配置无限个站点(理论上)。

由此看来,如果我们购买了虚拟主机,那么需要进行「双向绑定」,通常可以选择进行两种方式进行「绑定」。
Continue reading 虚拟主机答疑之「绑定」

辟谣之WordPress专业主机

先声明,本文不是针对时下流行的“WordPress专业主机”,
仅仅是从技术普及应用方面来解释说明关于“WordPress专业主机”的一些广告误导。

基础

、什么是WordPress

WordPress作为一款优秀的、开放源代码的、免费的PHP博客(Blog/部落格)程序,是使用PHP语言编写的一种Web应用(Web Apps)。WordPress是构建与PHP平台之上的一个程序,简单的说,我们可以理解为“Microsoft Office是构建于Windows系统之上的应用程序”一样来理解,不过,WordPress主要面对的是互联网、运行结果是HTML代码。

、WordPress的运行环境

运行WordPress需要满足PHP和MYSQL数据库(通过插件可以实现SQLite数据库)这两个条件,而出于支持静态链接(Permalinks)的必要,还需要服务器具备支持Rewrite规则(Rewrite Rules)的特性,而Rewrite规则的支持通常需要Apache的Mod_rewrite模块来实现,并且Rewrite规则一般保存于与WordPress目录同级的一个叫.htaccess的文件,并且这个环境在Linux/BSD/Unix平台上运行效率最佳、支持度最高、表现最完美,通常被统称为LAMP平台,组成结构为Linux+Apache+MySQL+PHP。
而这样的环境同时也可以“完美运行”任何基于LAMP架构组件的Web Apps,包括Discuz!/PhpWind/MediaWiki/DedeCMS/Sablog/b2evolution/Typecho等等。

同时,在Windows上我们也可以通过ISAPI_Rewrite这个模块来支持Rewrite,但是规则略有不同、可能会存在一些意想不到的问题,所以,并不推荐使用Windows平台来运行PHP程序。

关键词: WordPress, Linux, Apache, MySQL, LAMP, Rewrite, Web Apps
Continue reading 辟谣之WordPress专业主机

服务器监测和实时SMS警报的思路

一直以来,
我手下的一台运行着ASP应用的Win2000服务器总是访问数据库会莫名其妙锁死,
然后用户端访问的页面就提示:数据库查询错误,编码AXXX
最终分析下来的原因是ASP程序本身的问题,所以每次都要人工去执行iisreset释放,

而我又不会ASP且开发方对这个缺陷的改进意见总是支支吾吾的,
每次出故障都是同事打电话过来提醒然后我再连接上服务器去执行重置,因为我不太用那个东西……
但老这样,领导也渐渐开始有点意见了,所以,需要一个能及时报警并自动解决IIS重置的方案。

最理想的状态是基本满足以下需求:

  1. 实时报警,宕机与恢复时通过MAIL/SMS/CALL等时效性较高的手段通知;
  2. 自动恢复,在发出警报的同时能执行一些额外的命令操作,以达到自动恢复的功能;
  3. 字词检测,能通过实时的页面关键字词的监测达到判断业务系统的正常性;
  4. 费用低廉,最好是免费了,不能免费的话,再说吧……

其中至关重要的就是状态监测这一块的,
因为是内网业务系统,无法通过站长保姆这类第三方的Uptime Monitor来监视,只能自己选择可靠的同机房其它服务器进行监测,并且为了排除线路故障外的原因,本机也要监测,同时兼顾到另一个工作现场的使用和线路故障检测,也需要上一个监测点。
总的来说就是三个监测点:服务器本机、机房旁路、远端现场;

最终我在chinaz里面用monitor为关键词找到了一个软件:A1Monitor
从官方网站看来,最新版的A1Monitor 2009支持有以下特性:

  1. Vista兼容性,已经完成了对Vista的测试和工作兼容检查;
  2. 没有任何限制免费试用45天(如果企业对正版化有要求,建议购买,$89.95);
  3. 可以监视任何TCP/IP服务器或网页(通过http, https, pop3, smtp, ftp, 或者任何你需要监视的端口);
  4. 支持通过关键字来判断任何网页的正常与否;
  5. 你可以在服务器状态监测失败的时候收到邮件、同时A1Monitor还可以重启服务器或者执行一些附加的命令;
  6. 可以PING任何IP地址
  7. 每次有效的监测状态都会自动生成HTML格式的监测报告

事实上,除了VISTA兼容性之外,
我在chinaz找到的A1Monitor 2007特别版具备以上所有功能并且在我的2000/XP上工作非常良好,
如果你有这方面的需要,可以去down.chinaz.com搜索A1Monitor:mrgreen:

基本上,
需求列表里面的自动恢复字词检测使用A1Monitor就可以解决,那实时报警呢?

这个时候我想起了通过飞信,因为飞信可以给机主和好友发短信并且免费,那么自己给自己发警报SMS是可行的,
通过Google我找到这篇文章,里面提到了几种发送短信的方式,免费方案就是利用fetion了,

于是乎我从里面选择了网页命令行的方式,该方式貌似通过Fetion API这个Google App项目开发的,
然后我构造了通过Fetion API发送警报的方式,因为可以在链接后面构造参数直接提交接收人和内容,格式如下:

调用的方式就是

缺点就是会打开一个IE窗口,并且不会自动关掉,如果要是故障频繁点,还需要人工来关大量的IE窗口。

之后我突然以前看到过的飞信机器人
一个可以通过CLI(Command Line Interface,命令行界面,也有称之为DOS、命令提示符)调用的飞信客户端,
同时适用于Windows/Linux平台,还有一些开发文档,而我们需要用到的只是其中一个非常小的功能,CLI发短信
格式如下:

看到这儿,大多数人应该能明白了,
既然A1Monitor允许执行额外的命令,而我的故障处理方式iisreset,并且同时执行一个飞信机器人发送短信的命令,
那么只要随便写一个cmd文件,包含上面两条命令,然后放在磁盘方便访问机器人的地方,等着A1执行就好了。

基本上解决方法就是这些了,并且试验过确实有效,当然,整个机房掉电的情况下就比较麻烦了,
不过因为设置了三个监测点,3D防护,基本上可以解决服务器死机、线路故障、机房掉电等情况的近实时(0s~你设定的监测时间间隔)SMS警报,但要求监测机24×7开机。

思路写的有点混乱,如果需要教程的话,请关注后续文章。

Btw,
你当然也可以用这个办法在你的电脑上监控你Web空间的Uptime,
但问题是我想没有多少人能保持电脑24×7并且网络线路一直通常无故障的对吧,比较有难度而已。

本文参考:
利用飞信fetion发送短信,实现服务器报警等: http://zhouzaibao.javaeye.com/blog/378631
fetion机器人2009版说明及下载: http://bbs.it-adv.net/viewthread.php?tid=155
09版fetion机器人安装说明: http://bbs.it-adv.net/viewthread.php?tid=186