常用的web服务器软件有哪些
1IIS
IIS是英文Internet Information Server的缩写,译成中文就是"Internet信息服务"的意思。它是微软公司主推的服务器,最新的版本是Windows2008里面包含的IIS 7,IIS与Window Server完全集成在一起,因而用户能够利用Windows Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。
2ApacheApache
ApacheApache在世界上的排名是第一的,它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,不仅简单、速度快、而且性能稳定,还可以用来做代理服务器。
3Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
4Zeus
Zeus是一个运行于Unix下的非常优秀的Web Server,据说性能超过Apache,是效率最高的Web Server之一。
5Sun
Sun的Java系统Web服务器也就是以前的Sun ONE Web Server。主要出现在那些运行Sun的Solaris操作系统的关键任务级Web服务器上。它最新的版本号是61,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多数用户都选择了SPARC版本的Solaris操作系统。
使用多线程,下面的代码,简单实现一个多线程的web服务器:
#coding=utf-8import socket
import threading
from time import sleep
def response(sock, addr):
print "收到请求"
data = sockrecv(1024)
print data
socksend(html)
sockclose()
html = '''HTTP/11 200 OK\nContent-Type: text/html\n\r\nHello world!'''
s = socketsocket(socketAF_INET, socketSOCK_STREAM)
sbind(('0000', 80))
slisten(50)
print "正在等待连接……"
while 1:
sleep(01)
sock,addr = saccept()
t = threadingThread(target=response, args=(sock,addr))
tstart()
有个办法是你每次请求使用代理来httpwebrequest,如果不采用这个办法你只能设置httpwebrequest的超时时间了,因为当负责检测拨号的线程拨号时其他httpwebrequest线程的执行位置是不确定,所以无法通过信号方式高效的处理此问题,我建议你吧httpwebrequest超时时间设短一点,然后try一下,如果超时就重拨号(还可以设置一些侧率比如说重试拨号超过一定次数当前线程就暂停几秒)
0条评论