Entries Tagged as 'Linux'

用squid2.6反向加速多个web网站

squid2.5的配置就不用介绍了
这里的题目是“squid2.6
2.6下配多个站点的反向加速远没有2.5时的简单
就因为这
手头好些squid2.5没有升级到2.6呢
到现在2.6都成料”old“版本了
(stable的是2.7和3.0)
后来发现其实弄明白了也还是挺简单的
主要就是”http_port“、”cache_peer“和”cache_peer_domain“这三句配置
首先

http_port xxx.xxx.xxx.xxx:80 vhost

这里的xxx.xxx.xxx.xxx是这台squid机器的公网地址
如果要squid绑定所有端口的话
可以简写成

http_port 80 vhost

这里vhost是基于名称的虚拟主机的意思
如果有需要加速基于ip(其实就是基于tcp端口)的虚拟主机
则后面再加个vport即可
然后再就是cache_peercache_peer_domain的配合了
首先,给每一个squid后台的real server(web server)建立一个cache_peer
像这样:

cache_peer xxx.xxx.xxx.xxx parent 80 0 no-query originserver

(这里的xxx.xxx.xxx.xxx是real server的ip,当然写域名也可以,只要能够被squid的机器正确解析为ip地址)
80是real server的服务端口,一般应该是80吧
因为后端real server一般应该是web server,不是squid,所以自然没有icp端口之说,所以icp端口设为0
最后的originserver正是指出了,这是台原始(内容)服务器,我们习惯称之为real server

再然后在cache_peer_domain里将由squid提供加速服务的域名分别扔给上面定义的cache_peer
注意:貌似每一个cache_peer必须至少有一个cache_peer_domain与之相对应
像这样

cache_peer_domain xxx.xxx.xxx.xxx www.domain.cn

或者是

cache_peer_domain xxx.xxx.xxx.xxx .domain.cn

上面的xxx.xxx.xxx.xxx是后台real server的ip地址,且是在cache_peer中定义过的

到这里就差不多了
剩下的无非是用acl权限控制什么的
我多半喜欢用dstdomain来定义acl
除了这个acl的都不让访问
呵呵
因为一般反向加速模式的squid都是服务于自己公司的网站
而自己公司的域名一般也就那么两个
最重要的是天知道哪天某个公司的域名要加到squid的服务里来
哪天又要挪出去
这样设好了就一劳永逸

oom-killer on Fedora Core 3

发现有台机器
FC3(Fedora Core 3)的系统
kernel2.6.12.3smp
[root@xxxx cron.daily]# egrep “Low|High” /proc/meminfo
HighTotal: 3080168 kB
HighFree: 26288 kB
LowTotal: 882600 kB
LowFree: 134452 kB
周末发生大面积服务当掉
今天查log
发现是:“

Out of Memory: Killed process xxxxx (service’s name).


这个机器好歹都是4G内存呀
不知怎么搞得
貌似连4G的swap都用完了
导致系统oom(out of memory)-killer到处乱杀进程

怎样让httpd2.2支持ssi(server side include)

权威文档可以看这里
只想简单应用又懒得看e文的就听我道来
首先
你需要让apache知道怎么去解析.shtml文件(这里假设有ssi的文件的扩展名为shtml)

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

从httpd2.0开始就用这两句
在以前apache1.3.x的时候貌似是另外的一句
然后要在你要实现ssi功能的目录下标明:

Options +Includes

比如

<Directory /var/www/html>
Options +Includes
</Directory>

最后
重起apache
即可

vim里对程序的自动排版功能

本意是找个能够把程序排版成标准式样的程序的
偶然发现vim居然就自带这个功能
于是就省心了
具体方法是这样的
在浏览模式下输入命令“1G=G
于是一下子就排好了

在文件中添加2行

今天又有个需求
需要在某个文本文件中的第一行后面添加两行内容
本想用前面的文章提到的方法
但是用vim
不知道怎样输入控制字符ESC(vim中敲入”ESC”键能从输入状态返回到正常状态)
于是作罢

再试了下古董编辑器ed
感觉不错,呵呵
又复习了下ed的用法
最后的代码是这样的

ed xxx < 1
a
aaaaaa
bbbbbb
.
w
q
END

这样就搞定了
这里”xxx”是我要编辑的文件名
而” aaaaaa
bbbbbb”则是我要在第一行后面添加的2行文本内容

利用ssh的x11 forward,在有X server的本地显示服务器上的GUI

题目有点长
其实来自于一个朋友的问题
他的oracle跑在linux服务器上
远程的linux服务器并没有跑在图形界面下(runlevel=5)
而是跑在字符模式下(runlevel=3)
而他又想用图形界面来管理oracle
我翻了翻资料
找出一种方法
在一台图形界面的linux下(虚拟机也行,其实不是linux也行,关键是本地得有X server)
起一个控制台
用命令行ssh加参数”-X”连上远程的linux服务器
像这样
ssh -X oracle@1.1.1.1
这里”1.1.1.1″是远程linux服务器的ip地址
这样连上去之后
直接就可以用以前只有在图形界面上才能用的命令
如oracle管理的图形程序”dbca”

这个原理很简单
因为远程的sshd支持x11 forward
那么他起x程序的时候
就会把x的包通过ssh转回来到ssh客户端的机器上来
而ssh客户端这边跑得有x server
所以就能正确接收x包并显示出来

其实在windows下也可以通过安装x server软件来实现一样的效果
比如x manager就可以
具体用法不在详述

这里的关键在于
远程的sshd需要支持x11 forward
不过不要担心
一般情况下
缺省是支持的
:)

./configure时出错”configure: error: Can’t find X includes”

在家的ubuntu8.0.4上编K3b Monkey’s Audio Encoder and Decoder plugin的时候
./configure就出错了
错误提示:“configure: error: Can’t find X includes
网上有人说要
apt-get install kdebase-dev
可是如果这样的话需要装100多M的东西
后来发现
仅装xorg-dev即可
像这样
apt-get install xorg-dev

vim时”E575: viminfo: Illegal starting char in line………….”的问题

碰到一个问题
只要调用vim,就会出:

E575: viminfo: Illegal starting char in line: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx^@
Hit ENTER or type command to continue


的错误
退出的时候还报一次
查了下
原来是主目录下文件.viminfo出问题了
只接删掉
问题解决

vsftpd绑定服务ip

vsftpd.conf里用

listen_address=x.x.x.x

即可
这里的”x.x.x.x”是要绑定的ip地址

感受debian

linux里一直redhat一系用的比较多
最近ubuntu火起来后也在用ubuntu的桌面
这也才算是开始接触debian的东西(ubuntu算是debian一系的东西)
最近基于某种机缘
装了台debian的机器
版本是最新的4.0r3,07年出的
业界传说debian的人被ubuntu挖走了好多
导致版本发布变慢
看来还像这么回事儿
刚用,没啥其他感觉
就是安装的时候感觉比redhat一系的安装功能强大了不少
再有
就是用起来跟redhat一系很不一样(废话,一样的话那也是redhat一系了)
听以前用debian的同事讲debian比redhat稳定多了
我正好拭目以待