⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻
字号:
=====kHTTPd  -  Kernel httpd accelerator(C) 1999 by Arjan van de VenLicensed under the terms of the GNU General Public License=====1. Introduction---------------   kHTTPd is a http-daemon (webserver) for Linux. kHTTPd is different from    other webservers in that it runs from within the Linux-kernel as a module    (device-driver).   kHTTPd handles only static (file based) web-pages, and passes all requests   for non-static information to a regular userspace-webserver such as Apache or    Zeus. The userspace-daemon doesn't have to be altered in any way.   Static web-pages are not a very complex thing to serve, but these are very   important nevertheless, since virtually all images are static, and a large   portion of the html-pages are static also. A "regular" webserver has little   added value for static pages, it is simply a "copy file to network"-operation.   This can be done very efficiently from within the Linux-kernel, for example    the nfs (network file system) daemon performs a similar task and also runs    in the kernel.   By "accelerating" the simple case within the kernel, userspace daemons can   do what they are very good at: Generating user-specific, dynamic content.   Note: This document sometimes uses "Apache" instead of "any webserver you   ever might want to use", just for reasons of readability.   2. Quick Start  --------------   1) compile and load the module   2) configure the module in /proc/sys/net/khttpd if needed   3) echo 1 > /proc/sys/net/khttpd/start   unloading:    echo 1 > /proc/sys/net/khttpd/stop   echo 1 > /proc/sys/net/khttpd/unload    rmmod khttpd   3. Configuration ----------------   Modes of operation   ==================   There are two recommended modes of operation:   1) "Apache" is main webserver, kHTTPd is assistant	clientport   -> 80  	serverport   -> 8080 (or whatever)   2) kHTTPd is main webserver, "Apache" is assistant	clientport   -> 8080 (or whatever) 	serverport   -> 80      Configuring kHTTPd   ==================   Before you can start using kHTTPd, you have to configure it. This   is done through the /proc filesystem, and can thus be done from inside   a script. Most parameters can only be set when kHTTPd is not active.   The following things need configuration:   1) The port where kHTTPd should listen for requests   2) The port (on "localhost") where "Apache" is listening   3) The location of the documents (documentroot)   4) The strings that indicate dynamic content (optional)      [  "cgi-bin" is added by default ]   It is very important that the documentroot for kHTTPd matches the   documentroot for the userspace-daemon, as kHTTPd might "redirect"   any request to this userspace-daemon.   A typical script (for the first mode of operation) to do this would    look like:#!/bin/shmodprobe khttpdecho 80 > /proc/sys/net/khttpd/clientportecho 8080 > /proc/sys/net/khttpd/serverportecho /var/www > /proc/sys/net/khttpd/documentrootecho php3 > /proc/sys/net/khttpd/dynamicecho shtml > /proc/sys/net/khttpd/dynamicecho 1 > /proc/sys/net/khttpd/start   For the second mode of operation, this would be:#!/bin/shmodprobe khttpdecho 8080 > /proc/sys/net/khttpd/clientportecho 80 > /proc/sys/net/khttpd/serverportecho /var/www > /proc/sys/net/khttpd/documentrootecho php3 > /proc/sys/net/khttpd/dynamicecho shtml > /proc/sys/net/khttpd/dynamicecho 1 > /proc/sys/net/khttpd/start   In this case, you also have to change the configuration of the    userspace-daemon. For Apache, you do this by changing   Port 80   to    Port 8080      Stopping kHTTPd   ===============   In order to change the configuration, you should stop kHTTPd by typing   echo 1 > /proc/sys/net/khttpd/stop   on a command-prompt.   If you want to unload the module, you should type   echo 1 > /proc/sys/net/khttpd/unload   after stopping kHTTPd first.   If this doesn't work fast enough for you (the commands above can wait for    a remote connection to close down), you can send the daemons a "HUP"   signal after you told them to stop. This will cause the daemon-threads to   stop immediately.    Note that the daemons will restart immediately if they are not told to   stop.   4. Permissions--------------   The security model of kHTTPd is very strict. It can be, since there is a    userspace daemon that can handle the complex exceptions.    kHTTPd only serves a file if	1)  There is no "?" in the URL	2)  The URL starts with a "/"	3)  The file indicated by the URL exists	4)  The file is world-readable (*)	5)  The file is not a directory, executable or has the Sticky-bit	    set (*)	6)  The URL doesn't contain any "forbidden" substrings such as ".."	    and "cgi-bin" (*)	7)  The mime-type is known (*)   The items marked with a (*) are configurable through the   sysctl-parameters in /proc/sys/net/khttpd.   In all cases where any of the above conditions isn't met, the   userspace-daemon is handed the request.5. Parameters-------------   The following parameters are settable through /proc/sys/net/khttpd: 	Name		Default		Description	serverport	8080		The port where kHTTPd listens on	clientport	80		The port of the userspace					http-daemon	threads		2		The number of server-threads. Should					be 1 per CPU for small websites, 2					per CPU for big (the active files					do not fit in the RAM) websites.	documentroot	/var/www	the directory where the					document-files are	start		0		Set to 1 to start kHTTPd 					(this also resets "stop" to 0)	stop		0		Set to 1 to stop kHTTPd					(this also resets "start" to 0)	unload		0		Set to 1 to prepare kHTTPd for					unloading of the module	sloppymime	0		If set to 1, unknown mime-types are					set to text/html. If set to 0,					files with unknown mime-types are					handled by the userspace daemon	perm_required	S_IROTH		Minimum permissions required					(for values see "man 2 stat")		perm_forbid	dir+sticky+	Permission-mask with "forbidden"			execute		permissions.					(for values see "man 2 stat")	dynamic		cgi-bin ..	Strings that, if they are a subset					of the URL, indicate "dynamic					content"	maxconnect	1000		Maximum number of concurrent					connections6. More information-------------------   More information about the architecture of kHTTPd, the mailinglist and   configuration-examples can be found at the kHTTPd homepage:	http://www.fenrus.demon.nl   Bugreports, patches, etc can be send to the mailinglist   (khttpd-users@zgp.org) or to khttpd@fenrus.demon.nl

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -