新手新硬盘CENTOS安装教程

接着上一次的http://www.kvm.la/2011/12/08/Centos6-netinstall.html
继续安装系统 首先进入安装引导界面:选择【下一步】
2_1.png
第二步选择硬盘,咱们的vps或者是普通sata盘就选择第一个【基本存储设备】

阅读剩余部分...

网络引导安装centos6流程

引导启动网络安装的iso
第一步:选择 Install or upgrade an existing system
1_1.png
第二步:检测ISO完整性 选择【Skip】跳过

阅读剩余部分...

linux 硬盘格式化、挂载、卸载命令

linux系统硬盘格式化,mkfs.ext3 /dev/hdb1
 硬盘挂载 mount -t ext3 /dev/sdb /home/
 卸载硬盘分区 umount /dev/sdb
修改/etc/fstab 系统启动时,自动挂载硬盘。

安装DenyHosts防止ssh密码被爆破

wget -c http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
tar -zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cp -f /usr/share/denyhosts/denyhosts.cfg-dist /usr/share/denyhosts/denyhosts.cfg
cp -f /usr/share/denyhosts/daemon-control-dist /usr/share/denyhosts/daemon-control
chown root /usr/share/denyhosts/daemon-control
chmod 755 /usr/share/denyhosts/daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --level 345 denyhosts on
service denyhosts start

Linux防止PHPDDOS流量外出攻击

#!/bash/sh
DNSIP=`cat /etc/resolv.conf |grep nameserver |awk 'NR==1{print $2 }'`
iptables -A OUTPUT -p udp -j DROP
iptables -I OUTPUT -p udp --dport 53 -d $DNSIP -j ACCEPT
iptables-save

 

 

保存为脚本或者直接运行

脚本意思是,从resolv获取本地dns地址,用iptables封udp out所有端口,最后再开放dns 53号端口,从而达到防止DDOS对外攻击

解决php服务器时区差异问题

 方法1、在php代码中增加如下命令:
<?php
date_default_timezone_set('PRC');//其他东八去时间表示均可
?>
方法2、配置php.ini文件,设置如下:
date.timezone=PRC; //中国:PRC如果没有此项在任意位置添加即可,添加后别忘记重启web服务器

东八区时区可用的有Asia/Chongqing、 Asia/Chungking、Asia/Hongkong、Asia/Shanghai、Asia/Taipei、PRC、Etc/GMT+8等

KVM/HVM 系列VPS安装系统说明

 VPS控制面板截图(基于HVM系列),全中文面板,管理方便上手快。

我们的Windows VPS是基于HVM和KVM架构,HVM和KVM架构的VPS均可以自行通过系统ISO光盘映像安装Windows Linux FreeBSD系统,自由度非常的高!

相关VPS围观地址:http://www.kvm.la/win.html

下面是控制面板截图:

vps1.png

 

 本文主要说明一下HVM和KVM系统安装,面板已经集成了ssh和VNC控制台,仅需要到http://www.java.com下载java系统安装到您的电脑就可以使用了!

方法1(不适用于KVM架构):

 通过【VPS管理区】的重装系统快速安装预装系统:

vps2.png

 

方法二(KVM和HVM均适用):

通过使用ISO来自行安装系统,全虚拟化的VPS对windows linux bsd的系统都支持,这里只说如何引导进入安装系统,至于windows linux freebsd等各种系统的安装教程就不累赘了!

 如下面截图演示: ①设置硬盘和光驱启动顺序为CD-ROM,②选择挂载您要安装的系统ISO

vps4.png

设置好光驱后重启VPS,进入VNC控制台开始引导安装系统,如下图所示:

vps5.png

 

进入CD引导模式后就和您在本机电脑上安装系统一样,系统安装过程中配置网络的时候选择DHCP就可以自动完成网络连接!

至于一些系统安装教程我们会在后面适当更新发布!

 

 

Xen搭建pptpd服务

1.首先安装ppp服务
yum install -y ppp

2.下载pptpd最新版本的rpm包(比自己编译方便多了,删除也方便)
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

3.安装下载好的rpm包
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

4.设置pptpd解析用的dns(把ms-dns前的#号去掉,#号代表注释,填上opendns的服务器地址)
vi /etc/ppp/options.pptpd
ms-dns 208.67.222.222
ms-dns 208.67.220.220

5.设置拨号时候用的:用户名、拨号方式、用户密码、来源ip地址(用户名和密码可以随便设置,拨号方式只能填pptpd,来源ip用*号代表不限制)
vi /etc/ppp/chap-secrets
myusername pptpd mypassword *

6.设置本地ip和远端ip(本地ip就是你等一下建立拨号后分配给你的,远端ip是分配给服务器的)
vi /etc/pptpd.conf
localip 192.168.9.1
remoteip 192.168.9.11-30

7.设置ip转发状态为生效,然后立即载入(和第9步的NAT转发有关)
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
/sbin/sysctl -p

8.启动pptpd服务,并且设置为开机启动
/sbin/service pptpd start
chkconfig pptpd on

9.启动iptables规则,设置NAT转发,然后保存(iptables本身就是开机启动的,不需要再用chkconfig iptables on了)
/sbin/service iptables start
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE
service iptables save

10.在windows下本地连接里建立vpn拨号,输入用户名和密码,就连接上了。

Linux内存解疑

linux.gif

第一部分Mem行:
total 内存总数: 4092M
used 已经使用的内存数: 3270M
free 空闲的内存数: 826M
shared 当前已经废弃不用,总是0
buffers Buffer 缓存内存数: 36M
cached Page 缓存内存数:1482M

关系:total(4092M) = used(3270M) + free(826M)

第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:1748M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free内存数: 2344M (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有826.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
总结:第一行Mem内存是包含了缓存内存,实际使用物理内存为第二行的free值!
附:早期基于Openvz内核的VPS没有Cache内存!

vps备份方法

 

 tar cf - 需要备份的目录路径 | zip -1 -q -P 你的密码 - - | ncftpput -c -V -u ftp用户名 -p ftp密码 ftp.example.com /ftp上文件名
if [ $? -eq 0 ]; then
 echo '备份成功'
fi

 

注意需要安装tar,zip和ncftp
这个备份方法有3个优点。。。
1. 不会生成本地文件,在备份大量文件时很有用,不会空间不足,而且IO占用低,对网站运行影响小。。
2. 备份的文件是压缩的,网站页面,数据库数据的压缩率还是很客观。
3. 备份的文件是加密的,主要你的密码足够复杂,放在ftp上很安全。。。

追记:
Zip格式所能支持的最大文件大小为4G!
过7za和rar,都对管道支持不好
所以对于有4G以上数据的情况下,就得用gzip或者bzip2压缩了
但这样就无法设置密码保护

Linux自动备份数据脚本

将脚本保存为文件,然后使用cron定时每日执行一次即可每日备份

#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #改成你的mysql用户名
MYSQL_PASS=HostLoc #改成你的mysql密码
FTP_USER=HostLoc #改成你的ftp用户名
FTP_PASS=HostLoc #改成你的ftp密码
FTP_IP=127.0.0.1 #改成你的ftp地址
FTP_backup=backup #ftp上存放备份文件的目录,这个要自己在ftp上面建
#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
cd /home/backup
# 导出数据库,一个数据库一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
 (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
# 压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
#上传到FTP空间,删除FTP空间5天前的数据
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $OldData
put $DataBakName
bye
END

lighttp+nginx前端获取真实IP方法

在使用nginx做反向代理时,lighttpd在后端默认是无法获得客户端真实IP,如果要做到后端获取真实IP,首先nginx需要重新编译,加入-with-http_realip_module作为参数,大概如下:
./configure -with-http_realip_module
nginx.conf的proxy_pass后加入如下指令:
Location ~ / {
proxy_pass   127.0.0.1:8080;
proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
}
注:Lighttpd只能通过X-Forwarded-For头获取realip,设置X-Real-IP是无效的。
Nginx配置好后,lighttpd仍然无法获得真实ip,必须在lighttpd中添加模块mod_extforward,并进行相应配置,步骤如下:
1、在server.modules中增加mod_extforward
2、指定forwarder ip:
extforward.forwarder = ("10.0.0.232" => "trust")
通过以上配置即可实现后端lighttpd获取真实客户端地址。

nginx反向攻略指南

nginx严格定义上来说是一个不折不扣的反向代理服务器,用来做前端非常不错!

 

aptitude install gcc g++ vim libncurses5-dev make libxml2-dev
 apt-get -y install subversion
 apt-get install libpcre3 libpcre3-dev libcurl4-openssl-dev
 wget -c  http://nginx.org/download/nginx-1.0.5.tar.gz 
tar -zxf nginx-1.0.5.tar.gz
 wget -c http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz
 tar -zxf Nginx-accesskey-2.0.3.tar.gz
 svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
 curdir=$(pwd)
 cd nginx-1.0.5 
./configure --user=nobody --group=nobody  --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid  --conf-path=/etc/nginx/nginx.conf   --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-pcre --with-http_sub_module --add-module=$curdir/substitutions4nginx-read-only --add-module=$curdir/nginx-accesskey-2.0.3   
 make 
make install 

 nginx安装过程就这样了,如果已经安装过nginx的可以搜索下nginx升级的方法来完成!

编译参数里面的--with-http_sub_module --add-module=$curdir/substitutions4nginx-read-only --add-module=$curdir/nginx-accesskey-2.0.3 保留其他自行斟酌更改,这里就不罗嗦了!

substitutions4ngin是用来做替换,支持正则式!

nginx-accesskey和本文关系不大,主要作用是用于封IP访问和防盗链之用!

然后是nginx.conf的配置,基本配置就不阐述了,下面贴一个反向hostloc论坛的实例

        server{
        listen 80;
        server_name bbs.kvm.la;  #绑定的域名
        root /var/www/html;  #网站目录(搭配lnamp的时候有用处!)
        access_log off;		#off 关闭日志
location / {
subs_filter 'www.hostloc.com' 'bbs.kvm.la' gi;  #substitutions4nginx替换 (使用方法参照官方)
subs_filter '全球主机交流论坛' '全球主机网' gi;  #substitutions4nginx替换 (使用方法参照官方)
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   Referer http://www.hostloc.com;		#强制定义Referer,程序验证判断会用到
proxy_set_header   Host www.hostloc.com;  				#定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
proxy_pass http://174.127.189.179;						#指定目标,建议使用IP或者nginx自定义池
proxy_set_header Accept-Encoding "";					#清除编码
        }
}

更多详细Proxy设置参考nginx官方wiki说明:http://wiki.nginx.org/HttpProxyModule

反向实例http://bbs.kvm.la