my blog my blog

Category: 建站心得
关于Prism Syntax Highlighter中Command Line插件的配置教程

Prism Syntax Highlighter是一款wordpress中的代码高亮插件,奶牛非常喜欢它的Command Line功能,但是默认集成的情况并不好,奶牛就自己查看代码来处理了一下。我们先看看效果吧。

正常带行号格式:

这是第一行文字
这是第二行文字
这是第三行文字

Bash命令格式:

uname -a
ifconfig
ls

Bash命令带输出格式:

uname -a
Linux nenew.net 4.15.0-041500-generic #201801282230 SMP Sun Jan 28 22:31:30 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:36614 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36614 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18070026 (18.0 MB)  TX bytes:18070026 (18.0 MB)

使用行号的时候格式:

Output Lines:2,4-11

这就可以设置为单行或者多行同时输出显示了。

插件下载地址:Prism Syntax Highlighter

修改后的editor-plugin.js文件下载:editor-plugin.js

安装插件后替换掉其中的./assets/editor-plugin.js文件,然后在插件的设置页面中激活功能即可实现bash的命令行和行号的输出功能。

Ubuntu安装配置Linux性能实时监测工具NetData

最近测试了ntopng,虽然普通版本的也还凑合,但是还是企业版的实时展示奶牛更喜欢,可是普通版本就没有实时功能了,所以就又找了一下,发现在github上这个netdata的star最多,目前已经达到了28.9K,感兴趣的朋友可以去https://github.com/topics/monitor看看。

言归正传,奶牛来说说netdata的安装过程。

安装:

curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata-all

安装netdata编译所需组件,这里奶牛以全监控安装方式安装

git clone https://github.com/firehol/netdata.git --depth=1
cd netdata
./netdata-installer.sh --dont-start-it

这里根据提示进行安装即可,安装完成后我们可以通过service netdata start 来启动。

配置:

这里有个有趣的现象,在/etc/netdata/netdata.conf文件中并没有配置选项,而是需要从web下载配置文件,当然这个web是localhost了。

#  wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
#  curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf

所以呢,就按照这个说明把netdata.conf文件下载下来就可以配置了。

在此,奶牛更希望我们以反向代理的方式进行访问netdata,所以奶牛并不推荐直接将netdata端口暴露出来,所以我们将netdata.conf文件中的

[web]
	bind to = 127.0.0.1

修改为绑定到本地地址。最后我们可以通过Nginx反向代理来进行访问,或者如果你不介意,不这样配置也无所谓。

VPS磁盘空间大小调整小记

MySQL的日志文件又一次把奶牛博客的磁盘撑爆了,今天一下班发现网站挂了,然后ping还可以通,就进ssh看看究竟,然后很无语,mysql无法关闭也无法启动,df -h看了一下,发现/目录已经爆满。之前已经遇到过一次这种情形了,所以直接去看MySQL的日志文件,果然,几个G在那里堆着,删删删,反正也懒得去分析日志找原因了。删了之后发现/目录还是占用了近80%的空间,呃,这就有点儿纠结了吧,然后仔细看了一下df -h,我去,VPS还自带分区的,两块盘,一块30G的盘竟然挂载到了/mnt目录下,好吧,还有这种玩儿法。然后就想把这个vdb的硬盘给挂载到/目录下,但是回头一想,LVM貌似也不合适,没法直接加的,因为/是vda1这个主分区在挂载,所以,好吧,直接把vdb分给/usr目录吧,反正一般的东西也就扔这里面的,比如那个可恶的MySQL日志文件。

cp -Rf -p /usr /mnt

其中的-p参数是为了保证文件的uid和gid都保持不变,当然,这里是使用root帐号来操作的。

然后

umount /dev/vdb
mount /dev/vdb /usr
df -h

查看下确实挂载没有问题了,然后程序也都正常运行,之后再修改fstab

vim /etc/fstab

将原先挂载在/mnt目录下的vdb修改为挂载在/usr目录下。

最后再说下MySQL的日志,配置文件在/etc/my.cnf下,可以进行自动过期处理等操作,也可以直接注释掉不记录日志。

Vultr最新活动$5美元玩儿一年VPS

最近的云主机活动挺多的,鲨鱼家的独服$59美元一年,Vultr又来了个$5美元可用一年VPS。根据Vultr官方的配置

1 CPU 512MB Memory 
20 GB SSD
500GB Bandwidth 
$2.50/mo

活动的价格是充值$5美元获得$25美元的帐号奖励,总共$30美元,用最低配置可以用12个月。而且Vultr还有个好处,就是可以随时删除实例,重建实例,这样子IP就可以随便换了,而且还有15个机房可选,性价比还是很高的。

此次活动仅限新帐号,注册地址:Vultr官网

活动代码已经包含在Vultr官网链接中。

 

Nginx强制http跳转至https

奶牛启用https后发现还是在http和https共存的时候出现一些小问题,遂决定使用Nginx强制跳转https。

vim /usr/local/nginx/conf/vhost/nenew.net.conf

在配置文件的listen 80这段中插入语句

rewrite ^(.*)$  https://www.nenew.net$1 permanent;

然后重启Nginx即可。

军哥LNMP下typecho的rewrite配置隐藏index.php

最近新建了站点优推网并且开始使用typecho,安装配置过程中发现自带的rewrite无法隐藏index.php,解决方案是修改

/usr/local/nginx/conf/vhost/www.affu.net.conf

配置文件,将include enable-php.conf;修改为include enable-php-pathinfo.conf;

然后再在typecho的设置中启用固定链接即可正常显示。

最近打算将博客转入Sharktech的服务器,并且将使用7年的wordpress更换为typecho,wordpress不可说不好,但是现在感觉太臃肿了,对于一个写博客的感觉还是不太需要这么臃肿,轻便最好,再续…

关于bench.sh网站的实现

最近看到一条命令很有意思,一起来和大家解读一下,这个网站就是bench.sh

可能搞VPS的朋友很熟悉一条命令

wget -qO- bench.sh | bash

用这条命令可以直接实现linux下运行bench.sh的命令,刚开始奶牛也挺疑惑的,难道wget还自带这种功能,其实不然,命令中的bench.sh是个网站,对,是个网站,访问网站我们可以看到如下提示:

嗨!欢迎使用 Bench.sh

你可以使用以下命令来查看您的 Linux 系统信息,还可以测试网络带宽及硬盘读写速率

wget -qO- bench.sh | bash

或者

curl -Lso- bench.sh | bash

有意思的事儿发生了对么?为什么我们访问网站和我们wget得到的效果不同?因为网站对于user agent进行了识别。如果我们在命令行中执行

wget -O- bench.sh

我们可以看到如下结果:

Resolving bench.sh (bench.sh)... 149.202.55.78
Connecting to bench.sh (bench.sh)|149.202.55.78|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://86.re/bench.sh [following]
Resolving 86.re (86.re)... 104.224.156.154
Connecting to 86.re (86.re)|104.224.156.154|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7017 (6.9K) [application/x-sh]
Saving to: 'STDOUT'

好了,我们看到了一个302的字眼,这个是通过重定向来实现的,直接将使用wget和curl的user agent重定向到了http://86.re/bench.sh这个文件,所以我们wget或者curl得到的是这个文件。这里奶牛猜测原作者应该是用rewrite来写的,直接用web服务器进行ua判定之后rewrite到了这个文件。

奶牛的文章到这里并没有结束,来想想还除了rewrite还有没有其它的实现方法?奶牛感觉还有至少两种实现方法,反代可以实现,还有直接在服务器内进行根目录的重定向也可以实现。奶牛就把后者的实现过程来说一下。web服务器奶牛用的nginx。对网站conf进行配置修改:

server
    {
        listen 80;
        #listen [::]:80;
        server_name bench.2fu.org ;
        set $target bench.2fu.org ;
        if ( $http_user_agent ~* "(wget)|(curl)" )
        {
                set $target bench.2fu.org/true ;
        }
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/$target;

        include none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/bench.2fu.org.log;
    }

然后将true目录下建立一个index.html然后内容就是bench.sh。这样实现的效果是:

Resolving bench.2fu.org (bench.2fu.org)... 
Connecting to bench.2fu.org (bench.2fu.org)|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7017 (6.9K) [text/html]
Saving to: 'STDOUT'

没有302,奶牛更喜欢200 OK 。其实nginx服务器要是折腾折腾配置也很有意思。

 

 

WordPress使用SSL后需要注意的一些问题

奶牛的博客也进入了HTTPS的时代了,升级后原来的主题就直接删了,虽然很怀念,但是也无能为力,特别是启用了SSL后,页面的站长统计什么的都要统统改成https链接引入,否则直接就不加载了,后台的设置博客地址也要改成https类型的,奶牛并没有使用HSTS,怎么说呢,强扭的瓜还是不甜,特别是当SSL证书失效后便无法访问会造成很多不安因素,特别是我就一个博客,也不会有太多不安全因素。但是,HSTS还是趋势,建站的成本也在不断提升。最后记录下HSTS的申请网站吧。https://hstspreload.org/

迁移博客到了新主机

回想当初,自己初建博客,那时候国内的vps并没有现在那么多,也没有那么流行,流行的多数还停留在虚拟主机上,就是给你个帐号,你可以用ftp和phpmysql来管理自己的web文件,那时候虚拟主机商经常有各种问题,比如说各种宕机却没有赔偿,也没有99.9%这样的在线率,所以有时候自己都连不上自己的主机。到后来,自己也开始折腾vps,但是,怎么说呢,选网络又成了一个大问题,对于国内而言,国外的主机对联通电信以及移动并不一定都那么友好,当然,现在也还是这种情况,所以,有时候自己访问速度也就几十K的样子,也很难受。

前段时间,自己的博客就是挂着,也不怎么更新,因为自己发个文章进入编辑页面都感觉好困难,可能是版本比较老吧,有些插件连浏览器都不怎么支持了,最近我把博客更新到了最新的版本,也迁移了新的主机,我定义这是自己的一个回归吧。当然,其实迁移也好,升级也罢,终归遇到很多bug要去处理,就比如这次,奶牛的升级还是比较彻底的,也用了野卡的SSL,可能那个绿色的锁头标志比较好看吧,给人以安全感,但是也有问题没有解决,比如首页的微博挂件,估计也就只能做反代或者去掉了,其实还是习惯有那么个东西挂在上面的,至少你们可以找到最直接的联系我的方式。Anyway,升级就算这样简单的度过了。希望新主机可以稳定运行吧。

Ubuntu安装Node.js教程

 

在Ubuntu服务器中端中执行如下命令可以安装4.x版本的node.js

  1. curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - 
  2. sudo apt-get install -y nodejs 

如果想安装5.x版本的node.js可以执行

  1. curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - 
  2. sudo apt-get install -y nodejs 

编译安装就不介绍了。