'WEB' 分类

DigitalOcean 通过换机房巧换 IP 解决 SSH 被墙

最近,一直作备用的2个 SSH 账号突然被墙,连不上。这是第一次遇到这事儿。因为除非首选工具无法使用时,SSH 才上场。我知道你会和我一样的怒,或许你的 SSH 或 VPN 早被干掉了 N 次。

DigitalOcean 的好处是实惠的价格加比较靠谱的性能,然而它们提供的功能也是很先进的。如果 IP 被认证,SSH 肯定也就无法使用。解决办法就是换 IP。DO 的 VPS 换 IP 也就是十来分钟的事情。由于 DigitalOcean 提供多个机房随意更换所以,换 IP 就变得可能。

首先 Power Off 目标 Droplets,然后给它创建一个 Snapshots ,完成后在 More 选项中执行 “Add to Region” 选择新的机房,不能选择原来的机房,这会导致不能获得新的 IP。

新建一个 Droplets ,在 “Choose an image” 栏目找到 Snapshots 选项,并找到刚才创建的快照,一路按提示设置完成既可以。

Ping 新机房的 IP 看能否在东方这边能通(在确定不是 VPS 禁 Ping 的前提下)。一般新分配的 IP 都 OK 的。

在选择哪个机房时,可以先测速。不过过段时间后也可以再重新折腾回钟爱的机房。

如果新的 IP 不久后又被撞墙,就又来换个。看它们会不会把 DigitalOcean 所有的 IP 都干掉。

GA 已经苟且着,GP 越来越向高端玩家靠拢。你想访问个网站真的越来越难。

Nginx与Varnish下获取访客的真实IP地址

首先,nginx -V 查看是否有启动 “–with-http_realip_module” 模块,必须启用才行。

sudo vi /etc/varnish/default.vcl

sub vcl_recv 模块加入:


if (req.restarts == 0) {
                if (req.http.x-forwarded-for) {
                set req.http.X-Forwarded-For =
                        req.http.X-Forwarded-For + ", " + client.ip;
                } else {
                set req.http.X-Forwarded-For = client.ip;
                }
        }
sudo vi /etc/nginx/nginx.conf

http {}模块内加入:

set_real_ip_from   127.0.0.1;
real_ip_header      X-Forwarded-For;

卸载 php5-fpm

想重装php5-fpm,那就来卸载它:

sudo apt-get remove php5-fpm
sudo apt-get remove --auto-remove php5-fpm
sudo apt-get purge php5-fpm

或者:

sudo apt-get purge --auto-remove php5-fpm

Varnish 不应该是你的选择

发现使用 Varnish 会有个很糟糕的问题,就是新版中的Varnish总是会带来VCL的变化或者一些其它规则的变化,开发者似乎并没考虑旧版的存在。如果你升级到新版本,你必须重写VCL规则~而这不是个容易的过程。没有人愿意折腾!

特别是Varnish的社区或官方支持是很糟糕的,关于Varnish的实际应用相关资料也没有多少,Google上也搜不到多少有用的相关文章,官方论坛更是做看的。

Varnish 是走商业和开源2条路线,所以开源的免费版没有多少支持可能是理所当然。但是,我在它们提供商业服务的网站Varnish-software.com上看到一篇它们直接转载别的网站的关于适用于WordPress 的Varnish 4.x VCL的文章,里面有些Varnish 4.x VCL是错误的,它们也没有改正,直到现在。~这简直太扯了。就算是varnish-cache.org上的一些样例也是错误百出。

选择Varnish,需注意,小玩玩即可。

PHP 罢工之 ~ 111: Connection refused) while connecting to upstream

关于PHP的这个错误:

connect() failed (111: Connection refused) while connecting to upstreamclient: 123.xx.xx.xxx, server: ~.com, request: "GET ...... HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.~.com" 

curl -I IP //可以连接
telnet IP 80 //远程主机连不上

哪么就重启
service nginx restart //还是不行甚至reboot服务器

Less -N ……nginx.log 就看到了上面的错误

解决办法有很多,但是下面这个适合我:
sudo vi /etc/nginx/nginx.conf 在http区块加入

http {
...
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
...
}

PHP 5.5 开启Opcache

Ubuntu 14 下的PHP版本是PHP 5.5,它不再支持APC。默认状态下Opcache Mod处于关闭状态,需要手动开启。有个奇怪的问题,既然是提升自身性能的为啥不默认启用呢?

PHP 5.5开启Opcache:
sudo vi /etc/php5/fpm/php.ini

;opcache.enable=0 修改为 opcache.enable=1

再做下小调整,将对应的选项改成下面这样的设置:

opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache_revalidate_freq=240
opcache.interned_strings_buffer=8
opcache.fast_shutdown=1

确保PHP Opcache模块部已启用
sudo php5enmod opcache

sudo service php5-fpm restart

sudo service nginx restart

想查看效果可以使用这个工具
https://github.com/rlerdorf/opcache-status

Nginx 优化及安全配置

通过给nginx.conf文件加入一些规则可以起到优化配置及加固安全方面的作用~例如屏机器人或垃圾留言。

一,首先开始优化配置

执行 grep processor /proc/cpuinfo | wc -l //检查VPS的CPU是多少核,例如输出结果是1,就是一核
执行 ulimit -n //查看核的限制,例如1G内存的VPS,得到的结果一般时1024;此外可以执行 ulimit -Sn 查看的是软限制,ulimit -Hn 查看的是硬限制。

执行 sudo vi /etc/nginx/nginx.conf

worker_processes 1; //将1改为VPS的实际CPU核芯数
worker_connections 1024; //1024改为核的限制数(即ulimit -n后输出的结果)

缓冲区优化
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k/8k; //默认为4或8K,如果这里的数字设置低于或大于默认值,当你在登录网站后台时就会得到“400 Bad Request – request header or cookie too large” 这个错误。

超时优化配置

扫除代码文件中的BOM

代码文件中出现BOM头,会导致网页在浏览器中查看网页源码时出现<Head>里的内容跑到<Body>里面去;出现空行 “” ;代码开头前面有红点。

出现这种情况是因为代码文件中多了BOM。所以,大家千万别用记事本编辑网页文件。

检测和扫除代码文件中的BOM:

检测你的网站是否存在BOM头问题:

curl -s http://www.boromeke.com/ | head -1 | sed -n l   //返回的内容是前三个字节分别是357、273、277,那就说明网站中招了。

检测所有含有BOM头的文件并列出来。

grep -r -I -l $’^\xEF\xBB\xBF’ /path   //path为文件所在文件夹路径

或者进入目标文件夹执行

grep -r -I -l $’^\xEF\xBB\xBF’ ./

删除代码文件中含有的BOM头

find . -type f   -exec  sed -i ‘s/\xEF\xBB\xBF//’ {} \;

域名注册管理商 – Google

新顶级域名这玩意视乎又给了一大批公司抢钱的机会。Google不仅成为了域名注册商 Google domain,现在还是一家托管着19个新顶级域名的域名注册管理商。

不久前还专门针对拉美地区即西班牙语区开放了SOY域名的注册,SOY在西班牙语中是“我是”的意思。其实是不是有人搞错了,域名后缀应该放在前面才对啊,例如boromeke.soy,读起来是boromeke.我是,太不对调了吧,soy.boromeke这样就正确了-我是.boromeke。为此谷歌还推出了www.iam.soy网站。

欢迎使用Google域名注册系统。Google很快就要为大家推出一些新的域名。互联网的首要任务始终都是为用户搭建一个展示自我的舞台,而数以百计新域名的涌现则为互联网时代带来了勃勃生机,它预示着网络这一个变幻莫测的媒介即将迎来史上最无法预知的时刻。

谷歌托管的19个新顶级域名:
.みんな
.DAD
.ESQ
.HERE
.MEME
.PROF
.ZIP
.ADS
.DAY
.FLY
.HOW
.MOV
.RSVP
.BOO
.EAT
.FOO
.ING
.NEW
.SOY

更多信息可以去看Google域名注册系统的介绍。

Charleston Road Registry Inc 是谷歌管理域名服务的全资公司。

Yourphp 让上传的附件不自动重命名

找到控制器yourphp\Lib\Action\Admin\AttachmentAction.class这个文件
将 $upload->saveRule = uniqid; //改为$upload->saveRule = '';
$upload->uploadReplace=TRUE;//如果存在同名文件是否进行覆盖

如果页面需要增加附件下载功能,可以在模型里增加文件下载字段和文件名称描述字段,然后在前端调用。