Linux下Squid的使用
[贴教程]Linux下Squid的使用
做为眼下最流行的操作系统,Linux已经越来越受到世人的关注。虽然目前Linux的软件还不是很丰富,
替代WINDOWS作为普通PC机操作系统还为时过早,但是在服务器领域,Linux的稳定性,可操作性决不
输于任何操作系统,并且也有优秀的软件支持。Squid就是其中之一。Linux加Squid的组合做为代理
服务器,性能远远超过WINNT加MSPROXY2.0(个人观点),为几百人的小型局域网代理绰绰有余。下
面,我就详细的介绍Squid的安装及使用技巧,希望大家能够喜欢上它。
1.Squid简介
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。
也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid
连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面
时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP,
GOPHER, SSL 和 WAIS 协议,暂不能代理POP, NNTP等协议。不过,已经有人开始修改Squid,相信不
久的将来,Squid能够代理这些协议。
Squid能够缓存任何数据吗?不是的。象缓存信用卡帐号、可以远方执行的scripts、经常变换的
主页等是不合适的也是不安全的。Squid可以自动的进行处理,你也可以根据自己的需要设置Squid,
使之过滤掉你不想要的东西。
Squid可以工作在很多的操作系统中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux,
NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。
Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI
硬盘,处理器要求不高,400MH以上既可。
2. Squid的编译和运行
其实现在的Linux发行套件中基本都有已经编译好的Squid,你所作的就是安装它既可。如果你手头
没有现成的编译好的Squid或想使用最新的版本,去ftp:squid.nlanr.net下载一份,自己编译。
Squid的编译是非常简单的,因为它基本上是自己配置自己。最容易出现的问题是你的系统上没有
合适的编译器,这可以通过安装相应的编译器解决。如果出现其他问题,你可以问一下有经验的用户或
到相应的邮件列表寻找帮助。
编译Squid之前,最好建一个专门运行Squid的用户和组。我就在自己的服务器上建了一个名为
sq
相关文档:
64位 linux 编译链接错库的问题
在64位机器下面编译软件的时候,经常会遇到编译的时候需要链接64位的库,但是编译时找的却是32位的库,可以通过如下的办法强制编译程序去找64位的库
LDFLAGS="-L/usr/lib64 -L/lib64" \
在配置时加上这么一个选项即可。
......
3. GDB的实现
GDB是GNU发布的一个强大的程序调试工具,用以调试C/C++程序。可以使程序员在程序运行的时候观察程序在内存/寄存器中的使用情况。它的实现也是基于ptrace系统调用来完成的。
其
原理是利用ptrace系统调用,在被调试程序和gdb之间建立跟踪关系。然后所有发送给被调试程序的信号(除SIGKILL)都会被gdb截 ......
1. Linux 脚本编写基础
1.1 语法基本介绍
1.1.1 开头
程序必须以下面的行开始(必须放在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
编译 ch ......
引言
find最强大,什么都能查,可以根据条件查找文件。
which只能查可执行文件和别名(alias)。
whereis只能查二进制文件、说明文档,源文件等,可以找到可执行程序和man page。
locate是在数据库里查找,数据库大至每天更新一次,但跟whereis一样都是查数据库里的内容。
1.find /etc -name my.so
2.locate 是用来通过 ......
文件fun.c,fun.h,hello.c,hello.h,main.c动态库函数都在fun.c和hello.c里面
----------------------------
fun.c:
int add(int a, int b)
{
return a+b;
}
fun.h:
#ifndef _FUN_H_11
#define _FUN_H_11
int add(int a, int b);
#endif
----------------------------
hello.c:
#i nclude <stdio ......