CentOS Linux 6 NFS 配置

yum install nfs nfs-utils rpcbind
service rpcbind start
chckonfig rpcbind on

cat "/shared_dir 192.168.1.200(rw,async,all_squash,anonuid=500,anongid=500)" > /etc/exports
參數 參數功能 預設參數
fg
bg
當執行掛載時,該掛載的行為會在前景 (fg) 還是在背景 (bg) 執行? 若在前景執行時,則 mount 會持續嘗試掛載,直到成功或 time out 為止,若為背景執行, 則 mount 會在背景持續多次進行 mount ,而不會影響到前景的程序操作。 如果你的網路連線有點不穩定,或是伺服器常常需要開關機,那建議使用 bg 比較妥當。 fg
soft
hard
如果是 hard 的情況,則當兩者之間有任何一部主機離線,則 RPC 會持續的呼叫,直到對方恢復連線為止。如果是 soft 的話,那 RPC 會在 time out 後『重複』呼叫,而非『持續』呼叫, 因此系統的延遲會比較不這麼明顯。同上,如果你的伺服器可能開開關關,建議用 soft 喔! hard
intr 當你使用上頭提到的 hard 方式掛載時,若加上 intr 這個參數, 則當 RPC 持續呼叫中,該次的呼叫是可以被中斷的 (interrupted)。 沒有
rsize
wsize
讀出(rsize)與寫入(wsize)的區塊大小 (block size)。 這個設定值可以影響用戶端與伺服器端傳輸資料的緩衝記憶容量。一般來說, 如果在區域網路內 (LAN) ,並且用戶端與伺服器端都具有足夠的記憶體,那這個值可以設定大一點, 比如說 32768 (bytes) 等,提升緩衝記憶區塊將可提升 NFS 檔案系統的傳輸能力! 但要注意設定的值也不要太大,最好是達到網路能夠傳輸的最大值為限。 rsize=1024
wsize=1024
mount -t nfs -o bg,soft,rsize=32768,wsize=32768 192.168.1.100:/shared_dir /mount_point

Mac系统下挂载NFS有一点特别,需要加几个参数
不加resvport在mac下会挂载不了,不加nolockd的话给文件加锁的时候会提示nfs server lockd not responding

mount -t nfs -o resvport,rw,nolockd 192.168.1.100:/www /www

强大的 轻量级 Linux服务器监控系统 Monitorix

Monitorix 是一个开源的、轻量的 Linux/Unix 服务器监控工具。安装配置简单,图表功能丰富。

官方网站:http://www.monitorix.org

安装方法:

# perl-HTTP-Server-Simple 需要从EPEL安装
rpm -ivh http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

# 安装依赖
yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple

# 安装Monitorix
yum install monitorix

# 启动服务
service monitorix start

博主最近要监控一台线上服务器,用cacti又嫌太麻烦,在看了《比cacti更好的linux单机监控——Monitorix的安装与配置》 之后决定采用Monitorix。

在使用的过程中博主发现一个问题,当刷新报表页面的时候会有一个进程 netstat -nl –tcp 消耗掉大量的CPU,而且报表页面载入非常的慢。根据分析 Network port traffic (port.rrd),和 Nginx statistics (nginx.rrd) 两个脚本都会执行这个命令,而且不止一次。通过google搜索,我找到了解决方案——采用ss替代netstat命令。

修改方法:

在/usr/lib/monitorix 下面找到nginx.pm和port.pm,修改其中执行netstat 命令的部分替换为ss即可。

关于ss的介绍在这里:《篡权的ss》

如果需要监控温度、电压情况需要安装lm_sensors,可以通过yum安装。安装lm_sensors之后还要运行sensors-detect来检测生成/etc/sysconfig/lm_sensors文件。

SimpleScriptLoader for Firefox 一个简单的脚本加载工具

最近在做的一个项目需要调用JS文件对网页内容进行修改,老是用Firefox复制粘贴特别麻烦,于是乎就顺手写了个小扩展SimpleScriptLoader。这个小东西可以手动或者自动的加载指定的JS文件,非常简单易用。

支持在任何网页打开时加载指定的脚本文件,还可以设置自动加载,在选项面板中能设置允许自动加载的URL地址。

开源协议:GPL v3

代码托管在GitHub:https://github.com/HessianZ/simple-script-loader

0.1版已经发布到了Firefox扩展中心:https://addons.mozilla.org/zh-CN/firefox/addon/simple-script-loader/

界面截图

选项面板截图

广告术语 CPM、CPC、CPA 是什么意思?

1.CPM(Cost Per Mille,或者Cost Per Thousand;Cost Per Impressions) 每千人成本
 
  网上广告收费最科学的办法是按照有多少人看到你的广告来收费。按访问人次收费已经成为网络广告的惯例。CPM(千人成本)指的是广告投放过程中,听到或者看到某广告的每一人平均分担到多少广告成本。传统媒介多采用这种计价方式。在网上广告,CPM取决于“印象”尺度,通常理解为一个人的眼睛在一段固定的时间内注视一个广告的次数。比如说一个广告 横幅的单价是1元/CPM的话,意味着每一千个人次看到这个Ban-ner的话就收1元,如此类推 ,10,000人次访问的主页就是10元。?
 
  至于每CPM的收费究竟是多少,要根据以主页的热门程度(即浏览人数)划分价格等级,采 取固定费率。国际惯例是每CPM收费从5美元至200美元不等。
 
2.CPC(Cost Per Click;Cost Per Thousand Click-Through) 每点击成本
 
  以每点击一次计费。这样的方法加上点击率限制可以〖WX)〗加强作弊的难度,而且是宣传网站站点的最优方式。但是,此类方法就有不少经营广告的网站觉得不公平,比如,虽然浏览者没有点击,但是他已经看到了广告,对于这些看到广告却没有点击的流量来说,网站成 了白忙活。有很多网站不愿意做这样的广告,据说,是因为传统媒体从来都没有这样干过。
 
3.CPA(Cost Per Action) 每行动成本?
 
  CPA计价方式是指按广告投放实际效果,即按回应的有效问卷或定单来计费,而不限广告投 放量。CPA的计价方式对于网站而言有一定的风险,但若广告投放成功,其收益也比CPM的计 价方式要大得多。 ? 广告主为规避广告费用风险,只有当网络用户点击旗帜广告,链接广告主网页后,才按点击 次数付给广告站点费用。

Linode LNMP服务器环境配置笔记

我选的是1GB的套餐,每个月$20,年付减10%,实付$230.21折合人民币1400多点。

Linode 1GB

Linode 1GB

操作系统: CentOS Linux 6.2 64bit
运行环境: Nginx+PHP+MySQL

准备工作
编译环境部署:
在服务器上启用编译环境是非常危险的做法,为了保证安全我专门用一个虚拟机来做编译工作,编译完成后再将程序部署至服务器即可。

根据VPS操作系统情况下载安装CentOS 6.2 64bit, 因为只是做编译机,所以只要装 Minimal 版就可以了,几百M,下载也很快。
历史版本的ISO文件可以在 http://vault.centos.org 找到。

Minimal版本安装好后不会自动启动网络,需要执行以下操作:
运行命令

dhclient -v eth0

修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0
在文件最后添加一行
BOOTPROTO=”dhcp”

再把ONBOOT=”no”改成ONBOOT=”yes”

这样以后启动都自动连接网络了。

用root登陆后在/root目录建立packages、build两个目录,分别用于放置安装包和解压后的程序目录。
# 安装

yum install gcc make
cd
mkdir packages build

创建用户

groupadd -g 500 www && useradd -g 500 -m -u 500 www
groupadd -g 501 Hessian && useradd -g 501 -m -u 501 Hessian
groupadd -g 27 mysql && useradd -d /www/database -M -g 27 -u 27 mysql

环境变量

修改文件/etc/profile,将下面的内容加到文件末尾

PATH=$PATH:/opt/mysql/bin
PATH=$PATH:/opt/php/bin
PATH=$PATH:/opt/nginx/sbin

添加完成后执行: . /etc/profile
(中间的空格可别漏)


 

Nginx

下载地址:http://nginx.org/en/download.html

1. 下载

cd ~/packages
wget http://nginx.org/download/nginx-1.4.1.tar.gz

2. 解压

cd ~/build
tar -zxf ~/packages/nginx-1.4.1.tar.gz

3. 解决依赖

yum install pcre-devel
yum install zlib-devel

3. 编译

cd nginx-1.4.1
./configure --prefix=/opt/nginx-1.4.1 --with-pcre --with-openssl=/usr
make -j 2 && make install

 

MySQL

下载地址:http://dev.mysql.com/downloads/mysql

这里我选择的是Binary包
Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz

下载之后解压缩即可使用


 

PHP

虽然YUM有提供PHP,但是出于性能方面和个人需要的考虑我还是选择自己编译。
PHP版本我用的是5.3 主要是不知道5.4会不会带来什么兼容性问题。

下载地址:http://cn2.php.net/get/php-5.3.24.tar.bz2/from/a/mirror

1. 下载

cd ~/packages
wget http://cn2.php.net/get/php-5.3.24.tar.bz2/from/this/mirror

2. 解压

cd ~/build
tar -zjf ~/packages/php-5.3.24.tar.gz

3. 解决依赖

yum install libxml2-devel
yum install libcurl-devel
yum install libjpeg-devel
yum install libpng-devel
yum install freetype-devel
yum install autoconf

libmcrypt 在yum里没有,可以从EPEL里下载
EPEL(Extra Packages for Enterprise Linux)是Fedora社区打造的为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
安装

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

3. 编译

cd php-5.3.24
./configure --prefix=/opt/php-5.3.24 \
--with-config-file-path=/opt/php \
--with-mysql=mysqlnd \
--with-mysql-sock=/tmp/mysql.sock \
--with-iconv-dir=/usr \
--enable-xml \
--with-libxml-dir \
--disable-rpath \
--enable-safe-mode \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--with-gd \
--enable-zip \
--enable-sockets \
--enable-mbstring=all \
--with-mcrypt \
--enable-gd-native-ttf \
--with-freetype-dir=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr\
--with-pdo-mysql=mysqlnd \
--without-pdo-sqlite \
--enable-fpm \
--enable-cli

make -j2
make install

4. 编译扩展

后续步骤

cd /opt
ln -s mysql-5.6.11-linux-glibc2.5-x86_64 mysql
ln -s nginx-1.4.1 nginx
ln -s php-5.3.24 php
tar -czf servers.tar.gz *

将配置文件、启动脚本以及servers.tar.gz 上传到服务器,解压到/opt,放置好配置文件和启动脚本。


VPS 安装步骤

解决依赖

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
yum install libpng libjpeg freetype

yum install svn

创建用户

groupadd -g 500 www && useradd -g 500 -m -u 500 www
groupadd -g 501 Hessian && useradd -g 501 -m -u 501 Hessian
groupadd -g 27 mysql && useradd -d /www/database -M -g 27 -u 27 mysql

上传并解压
将servers.tar.gz、配置文件、启动脚本放到服务器

tar -zxf servers.tar.gz -C /opt
 tar -zxf init-scripts.tar.gz -C /etc/init.d

添加服务

chkconfig --add nginx
chkconfig --add mysql
chkconfig --add php-fpm

建立资源目录

mkdir /www
mkdir /www/database
mkdir /www/logs
mkdir /www/svn-repos

调整目录权限

chown www:www -R /www
chown mysql:mysql -R /www/database

环境变量
修改文件/etc/profile,将下面的内容加到文件末尾

PATH=$PATH:/opt/mysql/bin
PATH=$PATH:/opt/php/bin
PATH=$PATH:/opt/nginx/sbin

添加完成后执行: . /etc/profile
(中间的空格可别漏)


 

安全设置

SSH设置:
修改/etc/ssh/sshd_config
1. 禁用root登陆:PermitRootLogin no
2. 禁用密码登陆:PasswordAuthentication no
3. 启用密钥登陆:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

将公钥加入到服务器上 .ssh/authorized_keys中,生成密钥及具体设置方法参考:

http://stevenz.blog.hexun.com/15798089_d.html

在客户端可以通过下面的命令直接将公钥添加到服务器上:

cat  ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"

执行完成后重启sshd

service sshd restart

如果无法登陆可以查看安全日志 /var/log/secure 确定问题原因。

 

防火墙设置:
创建文件/etc/sysconfig/iptables,加入以下内容

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

 

这里只开放了22、80、3690三个有限的端口,如果有其他需要再自己参考添加就行。