18/04/2014
Linode 再次升级,内存和CPU翻倍,升级为SSD硬盘
在前几天网站搬家之后,今日偶然看到Linode再次给力升级。
最低配置的方案,主机从原来的1GB内存升级到2GB;CPU从1核心优先级升级到2核心,硬盘升级为固态硬盘,与此同时VPS价格不变。
希望Linode在和某主机商价格战中保质保量越做越好,其实现在1GB的内存1核心CPU已经完全能够胜任Wordpress这类CMS的功能了。
迫不及待想迁移主机到新服务器上,但发现暂时日本服务器还无法完成。但借机会做个磁盘测试,方便和之后的SSD性能做对比。
$ sudo dd if=/dev/zero of=test bs=64k count=4k && rm test
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 0.945093 s, 284 MB/s
$ sudo dd if=/dev/zero of=test bs=1M count=256 && rm test
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 0.771767 s, 348 MB/s
$ sudo dd if=/dev/zero of=test bs=64k count=4k oflag=dsync && rm test
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 4.47045 s, 60.0 MB/s
开了个Ticket咨询了下客服有关升级的事宜,客服说日本服务器还需要等一段时间,如果着急可以新开主机通过克隆的方法进行升级。暂时不打算新开主机更换,还是等上两个星期官方统一升级吧!
顺便说一下,Linode客服Ticket回复速度很快,基本上接近某些主机上在线即时聊天的速度了。
21/04/2014
Linode 搭建LNMP/LEMP总结
By dch1 in 程序人生, 网站日志 No Comments Tags: LEMP, Linode, Linux, VPS
既然是总结,就属于快餐性质的了,虽然使用Linode不是我第一次接触SSH的相关指令,但毕竟服务器所从事的任务和日常玩的Raspberry Pi以及2012年底买的128M OpenVZ主机是不一样的。
这次在Linode搭建VPS让我对Linux有了更深层次的了解,还是有很大收获的。 之所以不搭建LAMP平台的主要原因,是LAMP吃内存严重。
虽然Linode极力推荐LAMP方案(方便搭设出错概率少),但个人还是希望挑战一把,但没想到整体还是比较顺利的。 代码依据Debian 7 x64平台搭建(个人感觉Debian和Ubuntu实际差异不大,而且安装调试出现问题以后也可以部分参考Ubuntu的文档,但Debian版本更新慢,虽然Ubuntu和Debian底层差不多,但Debian还是相对更加稳定一点),Nginx服务器,PHP Fastcgi引擎,最后加上MYSQL平台和相关防火墙设置保障系统安全。
在开始之前,先习惯更新下程序包:
1. 设置时区以及主机名:
2. 修改hosts文件(官方文档说与服务器所建主机无关,个人认为这是为了本地解析用的)
修改格式:
完成上面的步骤以后,个人经验来看要让主机重启一回,实测中发现如果主机不重启,sudo之类的后期命令会出现错误。 3. 安装Web、PHP、MYSQL服务(第三行和第四行的MYSQL命令执行后需要依据屏幕提示操作,提示都还是挺简单的,主要是创建root代码,系统保护之类的操作)
(Linode提供以下内容,每次复制一行,主要作用是把以上程序添加到系统服务里)
4. 安装phpmyadmin (可选)
执行完以上命令基础程序基本就装完了,下面是设置部分。 之所以不按照官方教程来操作,是因为官方教程是带有讲解性质的,但实际操作起来会浪费一定的时间,就拿绑定主机头来说,官方教程是先装完Nginx配置一次,重启服务然后再来配置PHP环境,反反复复有时候很疑惑,为此我就走过弯路。 1. 先来配置WEB环境(一次搞定)
粘贴以下命令(已经包含防注入目录的命令):
特别注意,如果该主机头所绑定的网站不需要PHP运行权限(即纯HTML、HTML5等网站),可以视情况只写入绿色文字,这样也能增加子网站安全性;如果网站需要自定义错误页面,可以考虑增加橙色文字;PHP脚本执行(例如Wordpress之类动态站点),需要包含蓝色文字;最后,如果需要在网站虚拟出phpmyadmin目录(慎用!建议建站初期使用,使用后在相关区域前加“#”后重启Nginx服务以增强服务器安全性),可以粘贴红色文字。部分使用本脚本时,不要忘记上面代码末尾的大括号“}”。 2. 做文件链接到可用网站列表(类似Windows里的快捷方式,但强大太多了)。
每个网站设置好都必须使用上面的命令建立文件链接。 3. 创建目录,修改权限。 官方的命令我在多次执行时均出现问题,所以还是老老实实手动创建每一个目录吧。其中目录名要和上面设置文档的相对应。
问题重现:这也是我纠结了很长时间的问题,我的网站是从FTP通过wget方式远程搬家过来的,按理说wget在复制FTP目录时会继承之前的文件权限,但搬家之后的Wordpress只能打开不能更改目录内任何文件,对此我尝试了许多批量修改文件权限的命令均不奏效。最后无意间发现文件夹所属用户和用户组都是root……。 更改文件夹用户权限,恢复到WWW用户组:
logs文件不用管。这样自定义目录权限还是root,应该安全性更高。Linux文件权限管理确实严格。 4. 重启Nginx服务,将域名指向Linode(此处不介绍)。
如果没有出现错误,网站已经开通。 下面内容是更改端口,添加用户、防火墙和登录失败惩罚机制。 1. 更改SSH、端口 SSH默认端口是22,基于多种因素考虑应该修改掉(从科学上网和反暴力破解角度来看)。
执行上面的命令,找到开头为“Port 22”的那一行(比较靠前,不用翻页),更改为自己喜欢的端口即可。注意不要与现有的端口冲突。执行完后,运行:
2. 添加用户 Linode默认安装了sudo所以我们可以直接添加一个普通用户然后施加管理员权限。执行下面的命令:
有时为了科学上网,我们需要创建特殊的SSH账户,这类账户没有登陆SSH的权限,即用putty以及ssh命令登陆后即时被系统剔除,其实这类用户主要是通过特殊命令不创建home文件夹达到的。执行以下命令即可:
3. 设置防火墙
粘贴以下内容:
然后执行命令启动防火墙:
添加到开机任务中:
粘贴以下内容:
最后修改文件权限:
4. 添加登录失败惩罚措施 – Fail2ban
默认是连续5次SSH密码错误,IP封锁10分钟,感觉默认值就够用了。 写在最后:以上就是我通过整理SSH下历史命令和参考官方文档总结出的LNMP/LEMP安装指南,中间走过不少弯路所以应该这个步骤是相对省时省力的。
参考文档:
https://library.linode.com/getting-started
https://library.linode.com/securing-your-server
https://library.linode.com/lemp-guides
http://askubuntu.com/questions/29359/how-to-add-user-without-home
==========以下是广告栏目==========
另外,我的Linode推广链接(返现10刀,详情与我联系吧):https://www.linode.com/?r=6e90c4d0b3ebbabe169e3ab933326b87813b4c9c
对更便宜的Digital Ocean感兴趣的可以点这个链接(联系我可以帮你免费得到两个月等值$10的点数供测试使用):https://www.digitalocean.com/?refcode=46787e765bb6