如何设置一个高容量的Linux POP3服务器服务器教程(通用5篇)
篇1:如何设置一个高容量的Linux POP3服务器服务器教程
一: 概述
本文旨在介绍如何使用开放源软件Procmail和Qpopper来配置一台可供大量用户使用的POP3服务器,重点在于如何保持最佳的服务器性能,
二: 步骤
软件环境为RedHat Linux 7.1
1. 下载最新版的Procmail和Qpopper
Procmail 最新版本现在是3.21 可从
www.procmail.org/procmail-3.21.tar.gz下载。
Qpopper 最新版本现在是4.0 可从
www.eudora.com/qpopper_general/下载
2. 编译Qpopper
假设下载的文件放在/root
#cd /root
#tar xvfz qpopper4.0.3.tar.gz
#cd qpopper4.0.3
#./configure --enable-hash-spool=2
--enable-log-login
--enable-server-mode
--enable-fast-update
--enable-shy
--enable-spool-dir=/usr/mail
--enable-specialauth
注释:
--enable-specialauth 使用/etc/shadow 密码认证
--enable-hash-spool=2 使用二级hash结构
--enable-spool-dir=/usr/mail 则用户信箱文件为/usr/mail/j/e/jephe
--enable-log-login 记录下成功的POP3登录进入syslog
--enable-server-mode 和 --enable-fast-update
不要让qpopper在用户存取信箱时拷贝信箱文件到临时文件
减少磁盘I/O,增强性能
--enable-shy 让服务器响应时不要显示版本信息,增强安全性
#make
#make install
编辑文件/etc/inetd.conf
在/etc/xinetd.d下创建文件pop3,包含下面的内容:
service pop3
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/lib/popper
server_args = qpopper -F -S -s -c -R -T120
port = 110
}
注释:
-F enable fast update
-S enable server mode (在用户对该服务器没有shell存取时做)
-s 打开LOG功能
-c 忽略用户名的大小写
-R 不对连接进来的IP地址做反向域名检查
-T 设定超时时间
这样设定之后,如果用户jephe收取信件时,则先锁定信箱文件/usr/mail/j/e/jephe创建锁文件.jephe.pop,检查信件数目,退时出更新状态,生成.jephe.cache文件。
否则正常模式下是先把/usr/mail/j/e/jephe拷贝成.jephe.pop,最后用户检查信箱完毕再拷贝回来,增加了I/O处理时间
如果不是redhat 7.1则在/etc/inetd.conf中注释以pop-3开头的行,然后在后面再添加下面的行: pop-3 stream tcp nowait.400 root /usr/local/sbin/popper -F -S -s -c -R -T120
nowait:400中的400是指每分钟最多可接受的连接请求数目
关 键 字:邮件 服务器
篇2:如何设置一个高容量的Linux POP3服务器服务器教程
为了规划一个高容量的WEB服务器,我们分成以下环节来做:
一:网络环境
―― ――
| |(eth0:192.168.11.8) | |(eth0:a.b.c.d)
| A |――――――--------------| B|------------->ISP
―― (eth1:192.168.11.5)――
web.company.com firewall.company.com
A是局域网内部的一台WEB服务器,安装Redhat Linux 6.X,编译Apache+PHP4+MySQL
B是公司防火墙,外部地址为a.b.c.d,是通向Inte.net的唯一路径,B上也运行Apache
做反向代理到内部机器B。假设公司的域名为@company.com,B是该域的域名服务器。
二:WEB目录的组织结构
我们计划把WEB服务器数据文件置于一单独的目录/www下面,再在其下面建立相应的
子目录,如果我们计划设置WEB服务器web.company.com,则建立目录
/www/web.company.com ,结构如下:
/www/web.company.com/public/htdocs
/cgi-bin
/www/web.company.com/staging/htdocs
/cgi-bin
/www/web.company.com/developer/htdocs
/cgi-bin
三: 访问方法与虚拟主机
对staging和developer目录用基于端口的虚拟主机来访问,分别对应端口81,82。
下面是apache的配置文件/usr/local/apache/conf/httpd.conf中虚拟主机部分的
配置:
Listen 80
Listen 192.168.11.8:81
Listen 192.168.11.8:82
〈VirtualHost 192.168.11.8:81>
documentroot /www/web.company.com/staging/htdocs/
scriptalias /cgi-bin /www/web.company.com/staging/cgi-bin/
transferlog “|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/staging/%Y/%m/%d/aclearcase/” target=“_blank” >ccess_log“
errorlog ”|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/staging/%Y/%m/%d/error_log“
〈/VirtualHost>
〈VirtualHost 192.168.11.8:82>
documentroot /www/web.company.com/developer/htdocs/
scriptalias /cgi-bin /www/web.company.com/developer/cgi-bin/
transferlog ”|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/developer/%Y/%m/%d/access_log“
errorlog ”|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/developer/%Y/%m/%d/error_log“
〈/VirtualHost>
注:上面是基于端口的虚拟主机设置,要访问测试服务器,用web.company.com:81/
开发服务器用web.company.com:82/
上面的transferlog and errorlog用了不是默认的格式,而是Apache网站上建议的这种每天
一个文件的年/月/日格式,可从www.ford-mason.co.uk/resources/cronolog/下载编译
后安装在/usr/local/apache/bin/cronolog,可查看Apache网站获得更多信息,
httpd.apache.org/docs/misc/FAQ.html#rotate
如还有其它主页需要在此服务器上服务,如在/www下再创建子目录hr.company.com(人事部门)
,可为主机A创建IP别名,如192.168.11.9,再做同样的基于端口的虚拟主机设置
三:个人主页的情况
假定Apache以用户组身份nobody运行,且用户主目录为/home/jephe,则在此目录下创建目录
public_html
a.设置用户主目录/home/jephe要给nobody组以读和执行的权限
chmod 750 -R /home/jephe
b.设置用户主目录/home/jephe下public_html目录的权限
chmod -R 2770 /home/jephe/public_html
c.设置用户主目录的拥有者
chown -R jephe.nobody /home/jephe/public_html
用户可FTP上传主页文件至自己的目录中,要设置/etc/inetd.conf中的FTP上载的umask默认值
为u002,
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a -u002
然后用killall -HUP inetd生效。
最后用web.company.com/~jephe/ 访问个人主页。
四:防火墙机器B上的Apache反向代理
设置如下:
NameVirtualHost a.b.c.d
〈VirtualHost a.b.c.d>
servername web.company.com
errorlog ”|/usr/local/apache/bin/cronolog /var/log/httpd/web/%Y/%m/%d/error_log“
transferlog ”|/usr/local/apache/bin/cronolog /var/log/httpd/web/%Y/%m/%d/access_log"
rewriteengine on
rewriterule ^(/.*)$ 192.168.11.8/$1 [P,L]
proxyrequests off
〈/VirtualHost>
五:备份
用Rsync备份主目录/www/web.company.com/public/htdocs整个目录,关于如何应用RSYNC,参见
文章荟萃中的其它文章,主页在rsync.samba.org
篇3:如何设置一个高容量的Linux POP3服务器服务器教程
Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,要求服务器具备提供高并发连接数的能力,这对网络服务提供商提出了巨大的挑战[1]。并发连接数是指代理服务器对其业务信息流的处理能力,是代理服务器能够同时处理的点对点连接的最大数目,它反映出代理服务器设备对多个连接的访问控制能力和连接状态跟踪能力。单台服务器的性能有限,这是由服务器本身的处理能力和I/O能力决定的,必须采用多服务器和负载均衡技术才能满足大量并发访问的需要。
对于整个即时通讯(IM)服务器端体系,以及游戏服务器端的体系,一般都采用登陆服务器集群和应用服务器集群来分别处理登录和应用服务。组建分布式服务器群可以有效地均衡负载。负载均衡是解决高负荷访问和大容量并发请求普遍采用的解决办法。它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。网络负载均衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯,此保护措施能够帮助为关键业务程序提供不中断的服务。同时,可以根据网络访问量的增多,来增加网络负载均衡服务器的数量。[2]
在面对大量用户访问、高并发请求方面,解决方案主要集中在以下几点:良好的服务器组架构,高效率的服务器端程序、高性能的数据库、高效率的编程语言、还有高性能的Web容器。其中,服务器组架构和高效率的服务器端程序显得尤为重要。
1 大容量并发性服务器组的架构
良好的服务器组架构能够更好的进行负载均衡工作。如图1所示。
服务器组架构的考虑因素包括:
1.1 稳定性
稳定提供服务,是服务器系统确保用户体验的最基本要求。稳定性主要与应用服务器的软件质量相关。
1.2 效率
服务器组的运行时效率主要体现在服务器系统的承载能力上。
1.3 可缩放性
可缩放性可以理解为:增加服务器硬件是否可以相应的提高系统的负载能力或者是否能提高用户体验。承载能力和用户体验都是系统表现的一部分。从游戏开发及运营的角度来考虑,因素还包括:
1.4 生产力、开发效率
服务器的架构设计不止要考虑系统运行时的效率,也要考虑开发时的工作效率。例如:不同的系统服务或应用服务器之间是否会过度耦合等。
1.5 简单
简单性要体现在服务器组的部署和维护方面。如果一个游戏服务器组有20台硬件,那么备份数据、更新、重启这种简单的事情都会不再简单。一般游戏服务商每周都只做两小时停机维护,20组服务器的话,都会消耗大量的人力、物力。
1.6 可扩展性
实际上考虑到网络游戏服务的持续性,可扩展性也很重要,一般的做法就是周期性的持续提供游戏更新。可扩展性在架构设计阶段就应该考虑到。
2 实现大容量并发性的服务器端程序采用的技术
在IM方面,实现大容量并发性的服务器端程序,总结起来主要有以下技术:提高系统内核I/O性能,线程池和P2P。
2.1 提高系统内核I/O性能
开发网络程序一般需要创建socket,发起连接,接受连接,发送和接受数据。让程序可以适应从单单一个连接到几千个连接乃至于上万个连接是真正的难点。尽量提高单台服务器I/O性能是首先需要考虑的,利用Windows平台完成端口进行重叠I/O的技术和Linux的内核中引入的EPOll技术,是目前提高系统内核I/O性能的很好方法。
2.1.1 WINDOWS完成端口编程[3]
重叠I/O是指当调用了某个函数(比如Read File)就立刻返回做自己的其他动作的时候,同时系统也在对I/0设备进行操作,在这段时间内程序和系统的内部动作是重叠的,因此有更好的性能。所以,重叠I/O是用于异步方式下使用I/O设备的。
Win32重叠I/O机制允许发起一个操作,在操作完成之后接受到信息。对于耗费时间比较长的操作来说,重叠IO机制可以使发起重叠操作的线程在重叠请求发出后就释放掉。我们可以把完成端口看成系统维护的一个队列,操作系统把重叠IO操作完成的事件通知放到该队列里,由于是暴露“操作完成”的事件通知,所以命名为“完成端口”(Completion Ports)。一个socket被创建后,可以在任何时刻和一个完成端口联系起来。windows的完成端口机制在操作系统内部已经作了优化,提供了更高的效率。
2.1.2 Linux的EPoll模型
Epoll I/O多路复用技术是Linux 2.6内核中提高网络I/O性能的新方法,多使用在TCP网络服务器中。Epoll是为处理大批量句柄而作了改进的poll。Epoll是一种高效的管理socket的模型,相比于select,epoll最大的好处在于首先它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多耗时越多。Epoll所支持的fd上限是最大可以打开文件的数目,这个数字一般远大于2048;其次,IO效率不随fd数目增加而线性下降,在内核实现中epoll是根据每个fd的callback函数实现的,只有“活跃”的socket才会主动的去调用callback函数,其他idle状态socket则不会,在这点上,epoll实现了一个“伪”AIO,因为这时候推动力在os内核。
2.2 线程池thread-pool
传统多线程方案中服务器端模型是接受到请求,即创建一个新的线程执行任务,完毕后退出,这就是“即时创建,即时销毁”的策略。如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器处于不停的创建线程,销毁线程的状态。线程池采用预创建的技术,在应用程序启动之后,把立即创建一定数量的线程(N1),放入空闲队列中。这些线程都是处于阻塞(Suspended)状态,不消耗CPU,但占用较小的内存空间。当任务到来后,缓冲池选择一个空闲线程,把任务传入此线程中运行。当N1个线程都在处理任务后,缓冲池自动创建一定数量的新线程,用于处理更多的任务。在任务执行完毕后线程也不退出,而是继续保持在池中等待下一次的任务。当系统比较空闲时,大部分线程都一直处于暂停状态,线程池自动销毁一部分线程,回收系统资源。基于这种预创建技术,线程池把线程创建和销毁本身所带来的开销分摊到了各个具体的任务上,执行次数越多,每个任务所分担到的线程本身开销则越小。但是线程之间同步所带来的开销还需要考虑。
2.3 P2P
P2P是点对点传输,P2P与传统的少数服务器服务多个用户的C/S服务模式不同,大部分的服务靠用户间互相提供服务完成。[4]
P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。由于能够极大缓解传统架构中服务器端的压力过大、单一失效点等问题,又能充分利用终端的丰富资源,所以P2P技术被广泛应用于计算机网络的各个应用领域。P2P的基本原理是容易实现的,人们的研究方向也由基础架构的构建和维护及优化算法等桎梏中摆脱出来,开始深入到P2P技术的根本性问题中去。最新的研究成果表明,不少研究人员已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全方面的研究等方面。
3 展望
随着3G时代的到来,我们也对网络的大容量并发性控制提出了更高的要求,在现有的技术开发基础上,可以采用多核CPU来提高服务器性能、优化内核以增大系统最大网络并发连接数等。在服务器组构架设计方面可以根据用户的使用习惯,细分分区,减少单个数据库的压力,使服务器对于分区的变化能够给与相应的支持;使用复杂的策略,根据系统压力分布对用户登录的分配可以方便的调整;通过提高系统的配置性,可以实现不停的通过简单堆叠扩展系统容量,使系统随用户数量增加不断扩大。
参考文献
[1]J.Almeida,V.Almeida,and D.Yates.Measuring the Behavior of a World-Wide Web Server.Technical Report TR-96-025,Boston University,CS Dept.,Boston MA,1996.
[2]朱利,张兴军.Web服务器组的负载均衡方法研究[J].小型微型计算机系统,2003(12).
[3]R.Abbott and H.Garcia-Molina.Seheduling I/O requests with Deadlines:A Performance Evaluation.Proceedings of the IEEE Real-Time Systems Symposium,113-124,Lake Buena Vista,Florida,USA,December 1990.
篇4:如何设置一个高容量的Linux POP3服务器服务器教程
Win 2K对不同的用户设置了不同的配置文件, 只要将配置文件恢复就可以找回原来的界面Win 2K 一般是把个人配置文件放在X:Documents and Settings子目录下(X是Win 2K安装的逻辑盘符),里面有若干个文件夹,分别对应不同的Win 2K用户,
Win 2K中如何恢复你的个人设置服务器教程
。如果你使用的用户名是Administrator,那么只需要恢复这个用户名下的个人配置就可以了。
具体方法如下:
1、在系统桌面上用鼠标左键单击 开始--〉程序--〉管理工具--〉计算机管理,打开本地用户和祖,
2、再弹出窗口的右边选择Administrator这个用户名,用鼠标左键双击打开它的属性窗口,然后选择“配置文件“。
3、在“配置文件路径“框内添入你要恢复的配置文件所在的路径即X:Document and SettingsAdministrator),单击 确定 保存设置并关闭窗口。
篇5:如何设置一个高容量的Linux POP3服务器服务器教程
由于该软件在局域网中用的比较多,为了能方便地给局域网中的每一台计算机分配IP地址,WinRoute 4.1版本提供了DHCP(动态IP地址分配)功能,通过该功能用户可以自动配置局域网上的每台计算机上的网络相关参数,
它的具体设置方法如下:
首先从菜单栏中选择“SETTINGS”菜单项,并单击其下拉菜单中的“DHCP SERVER”命令,程序将会弹出一个对话框。在弹出的对话框中首先应该选中“DHCP SERVER ENABLED”,接着用鼠标选中“DEFAULT OPTION”(默认选项)后按住“EDIT”按钮,程序将打开一个标题为“CHANGE DEFAULT OPTIONS”(修改缺省选项)的对话框,该对话框共提供了四个复选项,如果选中“DNS SERVER”表示起用域名转换功能,同时用户可以在右边的“SPECIFY”文本栏中输入因特网服务商提供的DNS服务器地址,
另外用户还必须选中“LEASE TIME”这一项来指定IP地址的释放时间,一般改成12小时就足够了。对缺省选项设置修改后,单击“OK”按钮返回图7所示的界面,在该界面中请用户单击“ADVANCED”(高级)按钮,在弹出的窗口中选中第一个复选项,表示为客户机在启动时使用动态IP表,这样客户机重新启动的时候就不会占用几个IP地址,第二个复选项表示客户机将自动从远程服务器上获得动态的IP地址。
相关文章:
解决遗留问题的请示02-27
门禁控制器安装手册02-27
户户通修路申请书范文02-27
新农村民用燃气“户户通”项目实施方案02-27
在广播电视户户通工程建设工作会议上的讲话02-27
Linux安装mysql02-27
Linux下查看文件和文件夹大小命令linux操作系统02-27
如何在8位处理器上运行Linux02-27
linux系统移植02-27