码迷,mamicode.com
首页 > Web开发 > 详细

【重要】怎么自行搭建简单的web服务器

时间:2015-11-08 17:55:41      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#CGI模块
#怎么自行搭建简单的web服务器


#用途:
#内网中,提供文件的共享服务非常有用,在cmd下启动运行服务器命令之后,其他电脑也是可以通过url访问的
#可以实现pdf、zip等压缩文件、exe、apk等软件的下载服务.



###搭建基本流程##
#1、假定共享文件的目录为:/home/test,ip为#192.168.1.101
‘‘‘
怎么查看本机IP?
import socket
myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
print myaddr
‘‘‘



#2、在cmd下运行下面的命令即可:
#cd C:\home\test
#c:\\python27\python -m SimpleHTTPServer

           

#3、打开浏览器,http://localhost:端口号/路径来访问服务器资源
#如:访问http://192.168.1.101:8000;内网其他机器也可以通过服务器的IP地址来访问
#端口号,默认8000
#默认上面所定义的目录下有index.html文件,该文件为默认页面;如果没有该文件,会将目录以列表形式逐级显示出来



#4、注意事项:
#内网中,文件传输非常方便,50MB/s不是梦。但是不支持并发,只能同事有一个同事进行下载,但是这里可以通过编写新的模块来达到支持并发的目的。
#http://www.wtoutiao.com/p/jffBpc.html

#ForkStaticServer.py
import socket
import SocketServer
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler


class ForkingHTTPServer(SocketServer.ForkingTCPServer):
    allow_reuse_address = 1

    def server_bind(self):
        """Override server_bind to store the server name."""
        SocketServer.TCPServer.server_bind(self)
        host, port = self.socket.getsockname()[:2]
        self.server_name = socket.getfqdn(host)
        self.server_port = port


def test(HandlerClass=SimpleHTTPRequestHandler,ServerClass=ForkingHTTPServer):
    BaseHTTPServer.test(HandlerClass, ServerClass)


if __name__ == __main__:
    test()
    
#将上述代码保存为文件ForkStaticServer.py,
#放到Python标准库的目录下(在我的电脑上是/usr/lib/python2.7/ForkStaticServer.py),以后用下面的命令代替前面所讲的命令, 这样搭建出来的静态文件服务器就是支持并发的!



#自行搭建web服务器相关的库:
import BaseHTTPServer
import SimpleHTTPServer
import CGIHTTPServer
#import HTTPServer(python3中存在)

 

【重要】怎么自行搭建简单的web服务器

标签:

原文地址:http://www.cnblogs.com/dengyg200891/p/4947619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!