8.27.2008

Squid日志分析工具Sarg

Sarg is a Squid Analysis Report Generator that allow you
to view "where" your users are going to on the Internet.

今天简单测试了一下,很不错。比较详细的分析Squid日志。

安装也很简单
./configure && make && make install

sarg 可以手动分析日志 具体见 sarg -h
默认安装到把 wwwhtml /var/www/html里去
顺便把它给汉了一下。汉的过程很简单
cp English Chinese_UTF8
修改 Chinese_UTF8完了,修改 sarg.conf
language Chinese_UTF8
charset UTF-8

感觉真的挺不错的。当然了还有不少参数可以修改。


Labels: ,

Apache 访问控制

Note: the italic should change to ur own dir and name

In the httpd.conf add the following lines
!!!delete the "
"<"Directory /var/www/the/dir/tocontrol/">"
Options MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
"<"/Dircetory">"


vi /var/www/the/dir/tocontrol/.htaccess
add
AuthType Basic
AuthName "Restricted Files"
AuthUserFile
/var/www/the/dir/tocontrol/.htpaaswd
Require user allow_user

/pathto/htpasswd -c /var/www/the/dir/tocontrol/.htpaaswd allow_user

Labels: ,

8.26.2008

Apache Rewrite Rules

http://httpd.apache.org/docs/2.2/rewrite/

Rewrite很牛的说,很强大。
可以从
/a/b/c -> index.php?p1=a&p2=b&p3=c
/abc/index.php -> index.html
/a/b?c=www -> /a/b/www/index.html
二级域名的实现
还有很多,研究一下上面文档就行了

这次修改重写主要是实现
/old/index.php?app=what -> /new/what/index.php
憋了一上午,就是没看手册。。。。。。。菜鸟的本性显露无遗

下文来自官方手册:

Modifying the Query String

By default, the query string is passed through unchanged. You can, however, create URLs in the substitution string containing a query string part. Simply use a question mark inside the substitution string to indicate that the following text should be re-injected into the query string. When you want to erase an existing query string, end the substitution string with just a question mark. To combine new and old query strings, use the [QSA] flag.

也就是它根本不修改参数,必须加上?才能去掉参数
然后就是去掉"app=" 因为QUERY_STRING获得?后所有的,即app=what
通过下面方式解决
RewriteCond %{QUERY_STRING} app=(.*)$
RewriteRule old /new/%1/index.php? [R=301,L]

RTFM!!!!!!

8.21.2008

有点晕菜

上午有人说邮件有问题,我就检查了一下Zimbra队列。
没问题,检查完了,闲着没事。就看看一些服务器配置。

因为我们证书私有的嘛,就没事更新一下。更新完了。
service restart
挂了。

服务都开着,就是连不上。肯定是证书问题。
zimbra证书不要乱动。

后来把备份恢复。。

Labels: ,

8.20.2008

让VirtualBox1.6搞的抓狂了

在Ubuntu8.04上装上VirtualBox1.6

死活就是不能用键盘。。。。。。。。。

网上解决方案:

sudo apt-get install scim-bridge-client-qt scim-bridge-client-qt4

全局里面,去掉自动获取键盘。

OK! 很晕,难道是输入法的问题?

8.16.2008

今天把Mail服务器顺利迁移到本地

拖了好几天了,一直上边没安排。昨天下通知,要迁移了。

先rsync过来吧,但是rsync时,服务器一直working。所以当时有些文件也没有r过来。
但是大部分都过来了,用了近三个小时。

6:00正式停止服务,这样rsync大约5,6分钟差量同步。顺利完成

先升级到中间版本,然后再高级,很顺利。然后就是等着dns生效了。呵呵
今天下午2点多生效了,目前一切正常。

Labels:

8.15.2008

关于服务器虚拟化技术

在虚拟化技术中,各种方法都存在着相同之处,但是在实现方法和抽象过程中又各有不同

目前比较流行的主要有以下三种:
Virtual Machines(VMs)
Virtual Machines 主要是模拟真实硬件,从宿主中获取资源,这种方式用在很多系统模拟其中,它允许寄生虫:-),这样主要存在的问题是,CPU指令需要额外的权限,不仅仅局限于用户空间。这就需要有VMM(virtual machines monitor)分析代码,保证其安全,不会对系统造成损害。像Vmware, Qemu, VirtualBox,M$ Virtual Server就主要使用这种实现机制。
Vmware多数在win下用,感觉还不错。

并行技术
这种技术需要VMM,但是大部分工作都交给宿主操作系统来实现,并行技术,允许不同的操作系统运行在同一台主机上,但是需要他们被port过去,并行技术的例子如Xen,不幸的是M$的好像不能用。

系统级别的虚拟化
如果程序可以隔离和足够安全那么他们就可以共享,OS级别虚拟化,可以在同一个操作系统上运行不同的OS 主要产品: OpenVZ, Virtuozzo, Linux-VServer, Solaris Zones and FreeBSD Jails

下面我们以OpenVZ为例,说一下系统级别的虚拟化(具体见上一篇日志)

Labels:

8.13.2008

Ubuntu 8.0.4 Openvz 使用手记

Ubuntu 8.0.4 (kernel vmlinuz-2.6.24-16-generic)

First step:

http://download.openvz.org/ 下载对应的内核

apt-get install linux-openvz
apt-get install vzctl vzquota

2nd Step:

vi /etc/sysctl.conf
修改以下参数:
############ For openvz ######################
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.eth0.proxy_arp = 100
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

sysctl -p

vi /etc/vz/vz.conf
NEIGHBOUR_DEVS=all

reboot

$uname -r
2.6.24-openvz-24-004.1d1-686

3rd Step:
http://wiki.openvz.org/Download/template/precreated
下载templates
cp centos-5-i386-minimal.tar.gz到 /var/lib/vz/template/cache

4th Step:
vzctl create 101 --ostemplate centos-5-i386-minimal --config vps.basic

If you want to have the vm started at boot, run

vzctl set 101 --onboot yes --save

To set a hostname and IP address for the vm, run:

vzctl set 101 --hostname test.example.com --save
vzctl set 101 --ipadd 192.168.0.101 --save

Next we set the number of sockets to 120 and assign a few nameservers to the vm:

vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 213.133.98.98 --nameserver 213.133.99.99 --nameserver 213.133.100.100 --nameserver 145.253.2.75 --save

(Instead of using the vzctl set commands, you can as well directly edit the vm's configuration file which is stored in the /etc/vz/conf directory. If the ID of the vm is 101, then the configuration file is /etc/vz/conf/101.conf.)

To start the vm, run

vzctl start 101

To set a root password for the vm, execute

vzctl exec 101 passwd

You can now either connect to the vm via SSH (e.g. with PuTTY), or you enter it as follows:

vzctl enter 101

To leave the vm's console, type

exit

To stop a vm, run

vzctl stop 101

To restart a vm, run

vzctl restart 101

To delete a vm from the hard drive (it must be stopped before you can do this), run

vzctl destroy 101

To get a list of your vms and their statuses, run

edy@edy-desktop:~$ sudo vzlist -a
VEID NPROC STATUS IP_ADDR HOSTNAME
14 19 running 192.168.90.14 f8
101 4 running 192.168.0.101 deb-4.0
102 5 running 192.168.0.102 atlinux
103 30 running 192.168.90.13 cent5

vzctl 可以控制很多 --diskspace

8.12.2008

Grub损坏修复实战

问题:一同事,装了双系统Ubuntu8.0.4 /XP
自己捣鼓着装了一键还原。。。。。。
很显然grub损坏了,进不去Ubuntu了。

解决:
一般centos/fc什么的都有linux rescue,当然了,这些只能针对相应发行版。
可是Ubuntu8.0.4没找到,这系统就有点郁闷。

想用Centos来做把,结果它检测不到自己的Centos不能自己挂载。

最后用Ubuntu8.0.4进入livecd状态

mount /dev/sda7 /
因为他的系统装在sda7上嘛
然后
grub-install --no-floppy /dev/sda
reboot

8.11.2008

N个 httpd+squid+bind=N个 users

场景:

开发人员,一人一套开发环境,并且服务器环境相同。共用一套域名

过程:

开始有两套方案,一是VPS,如Openvz。二是ISP, 如ISPconfig

经过实验,openvz只是在宿主上模拟出一台主机,然后可以在这个台主机上构建不同的环境和系统。

这样的话,就需要在新的主机上重新搭建环境。复杂不说,还有一点就是是不是真正能模拟出来。

因为我们的环境已经很复杂了。最后舍弃,不过这个有点好处就是独立的存在主机。

可以做一些简单的服务器,这样可以提高安全系数。

而ISPconfig是针对空间域名提供商开发的,所以会有不同的域名和空间地址。

一套域名用于多个IP有点问题。

最后想是不是可以多 IP ,多服务器。

这样就用http作服务器,squid做代理, bind来做域名解析。

我们创建了8个环境。。。。。。即:8个http 8个squid 8个bind

创建了8个虚拟网卡。

流程 request->proxy->dns->server -------- server->proxy->response to client.

这样每个人用不同的代理,就可以访问自己服务器对应的IP地址。

太繁琐,现在想起来,头很大。呵呵,这种环境确实一种挑战。

但是又有点重复的意思,只要调试2个成功了,其余的就是改参数的问题了。

Labels:

8.10.2008

一个结束,另一个开始

好久没写东西了,也懒的写,生活开始平淡。即使有大小波折,也懒得去记录。
用心去感悟吧,最近走了两个朋友,一个上海去追求自己的爱去了。
另一个不知道即将飘向何方,祝福一下。
看到静同学写的blog,也有点感触,就顺手写点东西。
也是为情所伤。看的时候听着郭峰的《移情别恋》,呵呵,竟然下一首是《缠绵》。
有种说不出的感觉。
也明白为什么和兄弟整天喝酒了,也许就是那样就不会去想最复杂的感情。
最近感觉自己像刺猬了,不能离别人太近,要不然就会伤害别人。
也许是工作的原因吧,总是希望自己的喜欢的人聪明一点。可是自己呢?
呵呵,好像我自己也很笨,感情上吧。技术上还是可以小吹一把的。
以后尽量的去对待朋友吧
不过确实有点忙,要学的东西太多了。也希望你们能理解。
对了,报道一下朋友们的近况:
小祁8.8号领证了。恭喜一下!
下一个结婚的?
兄弟们会是谁呢?老三加油喽。大白痴估计吧。。。。。
老五?
即将结束的纪念,即将开始的纪念。
静同学,过去就让它过去吧,祝朋友们以后的爱情道路顺利!

8.08.2008

如何使用Linux做打印服务器

Head: I don't want to write in Chinese, just because i am too lazy to choose the correct words.
I can't use Wubi input methods, so I am sorry. But maybe I will write in Chinese later. For I found that the solutions about linux in Chinese are difficult to find sometimes. so I will write my
experiences.

使用Windows做打印服务器,应该不是很困难,因为只要打印机共享,如果Linux需要使用的话,直接用smb连接就行了。

前一阵子用F8做了一次打印服务器,昨天换系统了,呵呵,搞了一个320G的硬盘。所以顺便换了一下系统。ubuntu8.04还是比较顺手的,目前来说,闲话少叙。

正题:如何让Linux做打印服务器

手头工具: 网络,Brother DCP-7010 ,PC(Ubuntu)

Step1:
DCP-7010使用Usb连接到我电脑上。
应该可以看到下面信息:
sudo cat /etc/cups/printers.conf
# Printer configuration file for CUPS v1.3.7
# Written by cupsd on 2008-08-08 10:27

Info DCP7010
DeviceURI usb://Brother/DCP-7010
State Idle
StateTime 1218162217
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job


if u can't find the above info just check the drivers
useful links:
http://solutions.brother.com/linux/sol/printer/linux/lpr_drivers.html

Step2
配置 /etc/cups/cupsd.conf

需要修改的
原: Listen localhost:631
改为:Listen *:631
这样才能监听网络嘛

剩下就是权限设定了,我设定如下:
DefaultAuthType None

Order allow ,deny
Allow from 192.168.90.*


# Restrict access to the admin pages...

Order allow,deny
Allow from 192.168.90.*


# Restrict access to configuration files...

AuthType Default
# Require user @SYSTEM
Order allow,deny
Allow from 192.168.90.*


Step3
/etc/init.d/cupsys restart
奇怪了,Ubuntu下没有service命令?

window可以通过http://myip/printers/dcp7010 连接使用了。

主要注意两点,一是监听,二是打印机名

Labels: ,

8.05.2008

openvz install & use

Installation

x86_64 (2 cores)

CentOS5.1

cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
yum install ovzkernel

(It will install x86 & x86_64, so del the i386, or it will lead to some errors.)

rpm -e ovzkernel-2.6.18-53.1.19.el5.028stab053.14.i686

(Change the /etc/sysctl.conf add or change the values)
# For Openvz
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification
#net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

(add the following lines to /etc/modprobe.conf)
options ip_conntrack ip_conntrack_enable_ve0=1

reboot

Labels: