Archive for Linux分享

XEN安装问题

vgcreate 卷表明 分区名 vgcreate vg001 /dev/sda3

评论

解決 centos -bash: vim: command not found

使用centos 的主機的時候, 用 vim 的時候發現 -bash: vim: command not found. 只能使用 vi. 那麼如何安裝 vim 呢?
輸入 rpm -qa|grep vim 命令, 如果 vim 已經正確安裝,會返回下面的三行代碼:

1
2
3
4
root@server1 [~]# rpm -qa|grep vim
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5

如果少了其中的某一條,比如 vim-enhanced 的,就用命令 yum -y install vim-enhanced 來安裝:

1
yum -y install vim-enhanced

如果上面的三條一條都沒有返回, 可以直接用 yum -y install vim* 命令

1
yum -y install vim*

评论

CentOS 5.6(X64)下编译安装php mysql问题

建立libmcrypt相关库的软连接,为编译mcrypt作准备。因为mcrypt依赖libmcrypt。

#如果是CENTOS 5.6(64位)

以下内容为程序代码 以下内容为程序代码
ln -sf /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
ln -sf /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -sf /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
ln -sf /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2
ldconfig

#如果是CENTOS 5.6(32位)

以下内容为程序代码 以下内容为程序代码
ln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -sf /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
ln -sf /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
ldconfig

mhash(hash加密算法库)

以下内容为程序代码 以下内容为程序代码
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
cd ..

建立libmhash相关库的软连接,为编译mcrypt作准备。mcrypt也依赖libmhash。

 

#如果是CENTOS 5.6(64位)

以下内容为程序代码 以下内容为程序代码
ln -sf /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -sf /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -sf /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -sf /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -sf /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ldconfig

#如果是CENTOS 5.6(32位)

以下内容为程序代码 以下内容为程序代码
ln -sf /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -sf /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -sf /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -sf /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -sf /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ldconfig

评论

用 iptables 把来自某个国家的 IP 重定向到预定页面

昨天有位客户想在他网站上阻止所有来自中国的 IP 并且把来自中国的访问重定向到某个预定的页面(或网站)。正统的做法应该是用 apache + mod_geoip 或者 nginx + http_geoip_module 来做,但是发现这位客户使用了 apache/directAdmin/suexec,suexec 好像和 mod_geoip 在一起有问题,VPSee 不想大动客户的配置,所以打算用 iptables 来实现这个要求。想法是这样的,用 iptables 把来自中国的流量全部导向到网站的 81 端口,并在 apache 上启动监听81端口,放上预定的页面(或网站)。

先到 IPdeny 下载以国家代码编制好的 IP 地址列表,比如下载 cn.zone:

# wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone

得到需要的所有 IP 地址后,用下面的脚本逐行读取 cn.zone 文件并加入到 iptables 中:

#!/bin/bash
# Redirect traffic from a specific country to a specific page
# written by vpsee.com

COUNTRY="cn"
YOURIP="1.2.3.4"

if [ "$(id -u)" != "0" ]; then
   echo "you must be root" 1>&2
   exit 1
fi

iptables -F
iptables -X
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

# Redirect incoming http (80) from China to 81
for c in $COUNTRY
do
        country_file=$c.zone

        IPS=$(egrep -v "^#|^$" $country_file)
        for ip in $IPS
        do
           echo "redirecting $ip"
           iptables -t nat -I PREROUTING -p tcp --dport 80 -s $ip -j DNAT \
                   --to-destination $YOURIP:81
        done
done

iptables-save > /etc/sysconfig/iptables
chmod go-r /etc/sysconfig/iptables
service iptables restart

这样来自中国的 IP 访问 YOURIP 这个网站后就会自动导向到 YOURIP:81 这个端口,然后我们修改 apache 的配置,增加一个 Listen 81 和 以及在 DocumentRoot 里面放上预定的页面(或网站)就可以了

Comments (2)

ifto[ 安装教程

 

直接省略上面的步骤

CentOS系统:

yum install flex byacc  libpcap ncurses ncurses-devel

wget ftp://fr2.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/iftop-0.17-1.el5.rf.i386.rpm

rpm -ivh iftop-0.17-1.el5.rf.i386.rpm

评论

防火墙一些规则知识

1)跳转内网
-A PREROUTING -d 222.66.99.201 -p tcp -m tcp –dport 8800 -j DNAT –to-destination 192.168.84.46:3389
-A POSTROUTING -d 192.168.84.46 -p tcp -m tcp –dport 3389 -j SNAT –to-source 192.168.84.48
-A PREROUTING -p tcp -d 外网IP –dport 8800 -j DNAT –to $内网IP:3389
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 8080 -j DNAT –to WINIP:3389
iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 内网卡的IP
2)端口跳转实例操作
-A PREROUTING -i eth1 -p tcp -m state –state NEW -m tcp –dport 80 -j REDIRECT –to-ports 8080
3)开放端口实例操作
-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 6060 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 8080 -j ACCEPT
4)连续打开端口
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 7070:7079 -j ACCEPT
将80端口指向到8080端口上的IPTABLES文件
iptables -t nat -A PREROUTING -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
iptables -A INPUT -p tcp -m state –state NEW –dport 80 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
iptables -t nat -A PREROUTING -p tcp -m tcp –dport 443 -j REDIRECT –to-ports 8443
iptables -A INPUT -p tcp -m state –state NEW –dport 443 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
也有人写作
#iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT
–limit 1/s
限制syn并发数每秒1次,可以根据自己的需要修改
防止各种端口扫描
# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
iptables 屏蔽单个IP
iptables -I INPUT -s 203.231.1.191 -p tcp –dport 22 -j DROP
iptables -A FORWARD -d 218.241.156.95 -j DROP
iptables-save > /etc/sysconfig/iptables
iptables -A INPUT –dport 21 -s 219.142.192.187 -j ACCEPT //只允许一个IP访问
# Generated by iptables-save v1.2.8 on Tue Jan 23 14:49:09 2007
*nat
:PREROUTING ACCEPT [133:37589]
:POSTROUTING ACCEPT [26:2387]
:OUTPUT ACCEPT [26:2387]
-A PREROUTING -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
COMMIT
# Completed on Tue Jan 23 14:49:09 2007
# Generated by iptables-save v1.2.8 on Tue Jan 23 14:49:09 2007
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [62834:18310016]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 8080 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Jan 23 14:49:09 2007
# 只允许211.93.113.33地址的用户访问 ftp 服务器(21 端口):
-A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp –dport 21 -j ACCEPT
-A INPUT -s 211.93.113.33 i eth1 -p tcp -m tcp –dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT
封杀QQGAME:iptables -I FORWARD -m string –algo bm –string “qqgame” -j DROP
封杀QQ宠物:iptables -I FORWARD -m string –algo bm –string “qqpet” -j DROP
1)针对所有端口的完全封锁; iptables -I INPUT -s 65.55.44.100 -j DROP; (封锁65.55.44.100对本机所有端口的访问)
iptables -I OUTPUT -d 65.55.44.100 -j DROP; (封锁本机对65.55.44.100所有端口的访问)
2)针对特定协议及端口的完全封锁;iptables -I INPUT -p TCP –dport 25 -j DROP; (封锁25端口的INPUT,本机将不能接收邮件)
iptables -I OUTPUT -p TCP –dport 25 -j DROP; (封锁25端口的OUTPUT,本机将不能发送邮件)
iptables -I INPUT -s 65.55.44.100 -p TCP –dport 25 -j DROP; (封锁65.55.44.100对本机25端口的访问)
3)针对特定协议的部分封锁; #禁止所有TCP连接,只允许某些IP可以通过TCP访问本机:
iptables -I INPUT -p TCP -j DROP; (禁止所有通过TCP协议进入本机的连线)
iptables -I INPUT -s 137.189.3.8 -p TCP -j ACCEPT; (允许137.189.3.8通过TCP协议进入本机)
iptables -I INPUT -s ! 137.189.3.8 -p TCP -j DROP; (只允许137.189.3.8进入,等效于上两句,但只能开放一个IP)
#开放所有TCP连接,但禁止某 些IP可以通过TCP访问本机:
iptables -I INPUT -p TCP -j ACCEPT; (允许所有通过TCP协议进入本机的连线)
iptables -I INPUT -s 137.189.3.8 -p TCP -j DROP; (禁止137.189.3.8通过TCP协议进入本机)
iptables -I INPUT -s ! 137.189.3.8 -p TCP -j ACCEPT; (等效于前两句,但只能禁止一个IP)
4)针对特定协议及端口的部分封锁; #开放TCP连接80端口,但禁止某些IP通过TCP访问80端口:
iptables -I INPUT -p TCP –dport 80 -j ACCEPT; (允许所有IP对本机80端口的访问)
iptables -I INPUT -s 210.245.191.162 -p TCP –dport 80 -j DROP; (禁止210.245.191.162对80端口的访问)
iptables -I INPUT -s ! 210.245.191.162 -p TCP –dport 80 -j ACCEPT; (等效于前两句,但只能禁止一个IP)
#禁止TCP连接80端口,只开放某些IP通过TCP访问80端口:
iptables -I INPUT -p TCP –dport 80 -j DROP; (禁止所有IP对本机80端口的访问)
iptables -I INPUT -s 210.245.191.162 -p TCP –dport 80 -j ACCEPT; (允许210.245.191.162对80端口的访问)
iptables -I INPUT -s ! 210.245.191.162 -p TCP –dport 80 -j DROP; (等效于前两句,但只能开放一个IP进入)
#禁止本机通过TCP的80端口浏览外部网站,只允许访问203.194.162.10网站:
iptables -I OUTPUT -p tcp –dport 80 -j DROP; (封锁80端口的OUTPUT,本机将不能浏缆外部网站)
iptables -I OUTPUT -p tcp -d 203.194.162.10 –dport 80 -j ACCEPT; (允许本机访问203.194.162.10的80端口)
iptables -I OUTPUT -p tcp -d ! 203.194.162.10 –dport 80 -j DROP; (等效于前两句,但只能允许访问一个IP)
sysctl -w net.ipv4.icmp_echo_ignore_all=1(禁ping)
开启转发和映射
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp –dport 2222 -j DNAT –to-destination 192.168.1.156:22
记得把要转发的机器的网关指定到转发机器
手动加网关
route add default gw xxx.xxx.xxx.xXX

评论

linux下DirectAdmin面板安装Ioncube组件

先看看自己用是32位系统还是64位的!
32位系统:
1.“cd /usr/local/”
2.“wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz” 3.”tar xvfz ioncube_loaders_lin_x86.tar.gz”
64位系统:
1.”cd /usr/local/ ”
2.”wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz”
3.”tar xvfz ioncube_loaders_lin_x86-64.tar.gz” 注意自己是什么系统就OK!去掉引号
运行以后,登录directAdmin后台 点击文件编辑 下拉到最后一个 php.ini,进行编辑,在Zend的文件配置 第一行加上
“zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so” 然后保存,OK!下面更要注意拉!就是执行了以上之后并没生效!返回DirectAdmin控制面板主页点服务状态 httpd 点第三个 重导入意思是重新导入配置文件,然后查看php.ini 即可看到 ioncube已加载 我用的是PHP5.2,如果你安装的是5.1 或者4.1的 要作相应的修改!

评论

Linux下挂载lvm 并解决同名冲突

Linux下挂载lvm 并解决同名冲突
在Linux下使用新硬盘安装系统,安装好以后再挂载原来的硬盘,分区格式全为系统默认分区,系统默认使用的
是lvm格式,并且默认的卷都是 VolGroup00
使用 pvs 查看显示如下:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup00 lvm2 a- 136.62G 0
/dev/sdb2 VolGroup00 lvm2 a- 136.62G 0
发现可以正确认别到两个VG,但是同名,如何挂载呢?
解决办法是,将原来的VG更名,解决冲突即可挂载。
重命名格式为:[此时会提示:
[root@localhost ~]# vgrename VolGroup00 VolGroup01
Found more than one VG called VolGroup00. Please supply VG uuid.
原因是存在两个 VolGroup00,修改的方法他已经提示了要指定 VG uuid即可。
查看VG uuid的命令为:
[root@localhost ~]# vgs -v
Finding all volume groups
Finding volume group “VolGroup00”
Finding volume group “VolGroup00”
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
VolGroup00 wz–n- 32.00M 1 2 0 136.62G 0 dcHa6G-abU2-Xfq8-EPBm-jBLj-sf18-O5uH0U
VolGroup00 wz–n- 32.00M 1 2 0 136.62G 0 OF8g7h-PQJB-9D9z-yPxn-1kfY-Advq-YbNHJ9
查到VG uuid以后,再次执行改名:
[root@localhost ~]# vgrename OF8g7h-PQJB-9D9z-yPxn-1kfY-Advq-YbNHJ9 VolGroup01
Volume group “VolGroup00” still has active LVs
修改成功以后,再执行:lvscan
[root@localhost ~]# lvscan
inactive ‘/dev/VolGroup01/LogVol00’ [130.84 GB] inherit
inactive ‘/dev/VolGroup01/LogVol01’ [5.78 GB] inherit
ACTIVE ‘/dev/VolGroup00/LogVol00’ [130.84 GB] inherit
ACTIVE ‘/dev/VolGroup00/LogVol01’ [5.78 GB] inherit
可以看到新修改的VolGroup01是inactive状态。
再使用vgchange 加载 VolGroup01
[root@localhost ~]# vgchange -ay /dev/VolGroup01
2 logical volume(s) in volume group “VolGroup01” now active
最后 mount 就可以
[root@localhost ~]# mount /dev/VolGroup01/LogVol00 /mnt/old
至此,全部完成。
Linux下挂载lvm 并解决同名冲突

Comments (1)

mount挂载硬盘出错mount you must specify the filesystem type lvm?

[root@all /]# fdisk -l
Disk /dev/hdc: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 * 1 13 104391 83 Linux
/dev/hdc2 14 9729 78043770 8e Linux LVM

Disk /dev/hda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 255 2048256 83 Linux
/dev/hda2 256 3934 29551567+ 83 Linux
/dev/hda3 3935 4444 4096575 83 Linux
/dev/hda4 4445 4865 3381682+ f Win95 Ext’d (LBA)
/dev/hda5 4445 4699 2048256 83 Linux
/dev/hda6 4700 4801 819283+ 83 Linux
/dev/hda7 4802 4865 514048+ 82 Linux swap
[root@all /]# mount /dev/hdc2 /mnt/cdrom
mount: you must specify the filesystem type
mount 时出线上面的错误!谁给点提示!谢谢!

回答:

1.先用vgscan
2.vgchange -ay
3.lvscan
4.mount

到第三步的时候如果正常会显示出两块硬盘的lv状态都是active,此时再

#mount -t ext3 /dev/VGname/LVname /mnt/cdrom

就可以成功了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qiudakun/archive/2010/03/01/5336754.aspx

评论

解决Zencart删除cache目录下缓存

解决Zencart删除cache目录下缓存

首先需要有shell权限,如当前目录为abc.com,要删除qzyfl.com/cache 目录下的缓存文件

find  ./cache ‘*’ -exec rm {} \;

如果你是空间或vps下有很多网站,要删除所有网站cache下的缓存文件

find */cache/  -name ‘*’ -exec rm {} \;

如果执行以上命令出现错误提示: rm: cannot remove `XXXXXXX/cache/’: Is a directory,不用担心只是提示你cache文件为文件夹无法删除.

但是你要删除的缓存文件已经删除了.

评论

Lxadmin_安装CSF防火墙_应对DDOS攻击

一,下载与安装
01.cd /usr/local/src

02.wget http://www.configserver.com/free/csf.tgz

03.tar -zxvf csf.tgz

04.cd csf

05../install.sh
二,CSF的配置
要HypeVm和lxadmin的正常使用,需添加777*,888*和5558端口的支持
1,配置端口(/etc/csf/csf.conf)
增加TCP端口支持(HypeVm和Lxadmin需要):7776,7777,7778,7779,8886,8887,8888,8889,5558

# Allow incoming TCP ports
TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995,7776,7777,7778,7779,8886,8887,8888,8889,5558”

# Allow outgoing TCP ports
TCP_OUT = “20,21,22,25,53,80,110,113,443,7776,7777,7778,7779,8886,8887,8888,8889,5558”

2,打开MONOLITHIC_KERNEL支持(/etc/csf/csf.conf)

01.# One example is if the ip_conntrack and ip_conntrack_ftp iptables kernel

02.# modules are not available. If this happens, FTP passive mode (PASV) won’t

03.# work. In such circumstances you will have to open a hole in your firewall and

04.# configure the FTP daemon to use that same hole. For example, with pure-ftpd

05.# you could add the port range 30000:35000 to TCP_IN and add the following line

06.# to /etc/pure-ftpd.conf (without the leading #):

07.# PassivePortRange 30000 35000

08.# Then restart pure-ftpd and csf and passive FTP should then work

09.MONOLITHIC_KERNEL = “1”

3,如果你要能ping同你的HyperVm服务器,需设置(/etc/csf/csf.conf):

01.# Allow incoming PING

02.ICMP_IN = “1”.

4,如果你使用的是OpenVz虚拟化技术,你需要添加以下语句到您的/etc/csf/csfpre.sh文件:
01.iptables -A INPUT -i venet0 -j ACCEPT

02.iptables -A OUTPUT -o venet0 -j ACCEPT

03.iptables -A FORWARD -j ACCEPT -p all -s 0/0 -i venet0

04.iptables -A FORWARD -j ACCEPT -p all -s 0/0 -o venet0

注意1:/etc/csf/csfpre.sh可能不存在,你需要新建它。CSF每次运行的时候都会执行这个文件的。

三,测试CSF
01.service csf start

如果可以了的话,请关闭测试功能(配置/etc/csf/csf.conf)
01.# Testing flag – enables a CRON job that clears iptables incase of

02.# configuration problems when you start csf. This should be enabled until you

03.# are sure that the firewall works – i.e. incase you get locked out of your

04.# server! Then do remember to set it to 0 and restart csf when you’re sure

05.# everything is OK. Stopping csf will remove the line from /etc/crontab

06.TESTING = “0”

四、重启CSF
01.service csf restart

五、高级配置(配置/etc/csf/csf.conf)
你可以关闭进程和用户进程跟踪。
01.PT_USERTIME = “0”

02.PT_LIMIT = “0”

03.PT_USERPROC = “0”

评论

linux批量修改文件和文件夹权限

例如:要把目录下的所有目录的权限递归设置为755,可以每个目录修改,但这样太麻烦了,也可以这样写

find -type d -exec chmod 755 {} \;
同样,把目录下的所有文件权限递归地改成644可以这样执行:

find -type f -exec chmod 644 {} \;

评论

nginx 自动安装脚本 For cPanel

1.完善的目录密码保护功能 — 这个在原作者的安装包里面,并不能做到,原因在于没有对401状态码进行判断.
2.伪静态功能的实现 — 不管你的是以html结尾的还是以”/” 结尾的URL地址,nginx会提前判断文件系统中是否存在该文件/目录,如果不存在,那么就会匹配到后端的apache.后端的apache根据.htaccess文件的设置,进行页面的展示,前端nginx获取到内容后便进行压缩,然后传递给访客浏览器中.
3.访问日志准确记录 — 原作者的安装包中,是nginx与apache共用同个日志文件进行记录.nginx记录静态页面的访问信息,apache记录动态页面访问信息,理论上可行.但在实际使用中,我发现了这个问题.这个问题一个突破口在于对后缀.html匹配的时候,同时查询了前端nginx及后端的apache.这样就造成了日志的重复.另外一个是一些没有匹配到的后缀,前端不仅处理了访客的请求并进行记录,还会向后端发起请求查询.但由于大文件不会很快就传输完毕,因此即便设置了keepalive也无济于事.在我的安装包中,我将后端的用户配置中非加密端口的日志功能取消了,完全由前端的nginx进行记录.
4.日志切割问题 — 这个问题来自前面说的第3点修改,如果只是修改了第3点而没有进行这一步,那么就会碰到一个问题:当执行用户访问日志切割并转为统计页面展示给用户看,系统会自动将用户的日志删除,导致这之后的日志访问信息丢失直至下次nginx重启.在对cpanel日志统计进程的跟踪后,找出/usr/local/cpanel/bin/safeapacherestart这行.这行的作用是让日志切割后的apache可以安全的重新启动.解决办法就是一改作者重启nginx的方式,我将重启nginx的信息加入apache的重启命令中,以后只需要对apache进行命令操作就可以了.
5.泛域名解析 — cpanel支持泛域名解析,而且在作为主机商而言,泛域名也是一个特色,需要用起来.但是作者的版本以及我之前修改的版本中,并没有对这块进行支持,一旦客户绑定了泛域名,就会使nginx无法启动,全部用户的网站受影响.那么这次的更新就包含了这个功能.
6.基于proxy_cache的缓存系统 — 这个是我添加的,为可选功能.删除缓存的方法可以遵循squidclient的方式进行.不带缓存的安装版本 http://icodex.org/public_nocache.tar

另外需要注意的,网友们提到的一个是重启nginx后的那一串提示.这个警告信息是提示你主机名存在错误,不影响使用.

安装方法与作者原版一样.请执行如下安装!

cd /usr/local/src
wget http://icodex.org/public.tar
tar xf public.tar
cd publicnginx
./nginxinstaller install

安装好之后,重启nginx,执行命令:/etc/init.d/nginx restart.Nginx的配置文件均在/etc/nginx当中,各用户绑定的域名(附加域,子域等)均在/etc/nginx/vhosts

卸载:

进入publicnginx目录后执行./nginxinstaller uninstall.

评论

Linux防火墙的关闭和开启

1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

评论

如何给linux添加新硬盘

在服务器上把硬盘接好,启动linux,以root登陆。

比如我新加一块SCSI硬盘,需要将其分成三个区:

#fdisk /dev/sdb

进入fdisk模式:

Command (m for help):p  //查看新硬盘的分区

Command (m for help):n  //创建新分区


可以用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令显示分区列表;t命令修改分区的类型ID号;l命令显示分区ID号的列表;a命令指定启动分区;w命令是将对分区表的修改存盘让它发生作用。 


Command action

   e   extended   //输入e为创建扩展分区

   p   primary partition (1-4)   //输入p为创建主分区,这里我们选择p


Partion number(1-4):1  //第一个扩展分区,按你需求可以最多分4个主分区

First Cylinder(1-1014,default 1):  1  //第一个主分区起始的磁盘块数

Last cylindet or +siza or +sizeM or +sizeK: +1024MB  //可以是以MB为单位的数字或者以


磁盘块数,这里我们输入+1024MB表示分区大小为1G。

这样我们就创建完一个分区,如果要创建更多分区可以照上面的步骤继续创建。

创建完后用w保存分区。

Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.

这样就分区完,我们还要进行格式化

#mkfs -t ext3 -c /dev/sdb1  //如果有多个分区,则分区修改为sdb2这样

格式化完后我们需要进行挂载分区,

#mkdir www //创建/www目录,我们将把新的分区挂到www下

#mount /dev/sdb1 /www  //将/dev/sdb1挂载到/www

# df  //用df命令进行查看

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/sda2              3771316   1388956   2190788  39% /

/dev/sda1               101089      9463     86407  10% /boot

none                     62988         0     62988   0% /dev/shm

/dev/sdb1               485906      8239    452580   2% /www  //看到了,这就是我们刚


才新挂载的分区

到这里我们工作已接近尾声了,不过我们如果这样就结束的话,我们每次重新启动服务器后都要

进行手工挂载,这样很麻烦,我们需要修改/etc/fstab文件来进行自动挂载。

#vi /etc/fstab

在文件的末尾填加如下内容:

/dev/sdb1               /www                    ext3    defaults        1 2

如有多个分区可修改sdb1和/www,修改完后保存,重起服务器。

到此我们添加新硬盘的工作结束了。

Comments (1)

« 上一页 « 上一页 Next entries »