If server works it's available:Users & Virtual Hosts Current statistics Web mail (Last version, Forum, etc.) Registration. This registration also gives you the right to use Windows versions too. If you are registred user, your code is acceptable for this version too, and UNIX versions is also free for you. E-mail... |
This is probably the smallest HTTP server, but you shouldn't
underestimate its capabilities.
ASIS files also support. Those files content HTTP header in the beginning.
Such files are being used for redirect inbound request to other site. This
file must begins with keyword "Status: " after this returning code and your
header is going. After header one line is empty, and data. Extension must be
.asi or .asis
| Parametr and comment | Key |
| General Setting | |
| Don't out log to terminal. | noicon |
| Start as daimon. | hide |
| Detail log for POP/SMTP/FTP. Otherwise only basic event are added to log. | detail |
| Disable saving log. | nolog |
| Store log. Log file name to save. | log=name.log |
| New log file every new day. Server will every day rename old log file (add date to name). It's necessary to get statistics for a day. | logday |
| Enable to remote administration. Otherwise, only statistics will be available for administrators. | radmin |
| Users from the same host. You can restrict number of simulate request from the same host. Usually one browser creates four simulate connections. Some browsers try to create much more simulate connections. This restriction includes all TCP connections (HTTP,FTP,POP,SMTP,Proxy) | from_same_host=## |
| IP ranges for which, this server is avilable. IP adresses through comma and range, low hyphenate high. E.g. 192.168.0.1-192.168.0.16,127.0.0.1 | ip_range={#.#.#.#[-#.#.#.#],} |
| HTTP server | |
| TCP/IP port for HTTP server. Usually it's 80 | port=## |
| How many HTTP requests will be working in the same time. About 20Kb of memory will be reserved for each simulate thread. Usually 5-12 connections are enough for 3-8 visitors per minute. | max=## |
| Default file name. Name when requested URL finished by "/". You can use wildcard character '*'. E.g. index.* to direct any index file in foulder) | def=name.ext |
| Error file. Full path to file or script that will be returned if requested file is not found. For CGI or SSI PATH_INFO variable will contents the name of requested file. | error=path/name.ext |
| Default web foulder. | dir=root_dir_name |
| Share dir. If you want this dir to be CGI current dir always, direct it here. Otherwise CGI current dir will be CGI script dir. | share=path |
| Enable to checks Server Side Includes (SSI) in HTML files. By default server checks SSI in .sht*,.sml*,.asp* files only. Warning: It requests more memory, and work longer | ssihtm |
| Key to check SSI in .sht*,.sml*,.asp* files only. | nossihtm |
| The limit of receiving by POST method in bytes. Don't direct big value because it's may preoccupy your PC and network. | post_limit=## |
| Limit of time for CGI execution. In seconds. | cgi_timeout=## |
mime=".ext1;mime-type1;.ext2;mime-type2;...;.extN;mime-typeN" | |
hostpath="hostname;path" Key may be repeated more then once. | |
| Proxy server | |
| Disable HTTP proxy. | noproxy |
| TCP/IP port for proxy server. | proxy=#port |
| How many proxy requests will be working in the same time. | proxy_max=#max |
| Cache size (Kb). It's memory cache size. | cache=proxy_cach_size |
| IP ranges for which, this server is avilable. IP adresses through comma and range, low hyphenate high. E.g. 192.168.0.1-192.168.0.16,127.0.0.1 | proxy_range={#.#.#.#[-#.#.#.#],} |
| Disable to save cache in hard disk. | noproxy_dir |
| Cache proxy directory. | proxy_dir=path |
| For how many days files will be saved. Proxy can delete downloaded files from cache proxy directory after several days of last download. In any case, if user press "Reload" button files download again. | proxy_time=#days |
| Ignore NO-CACHE in control headers of the pages. HTTP protocol has an opportunity to disable caching for page. Often site holders use this option to calculate the number of vistors. In any case, if user press "Reload" button files download again. | ignocache |
| Proxy for avtorized users only. Proxy will be available for defined users with proxy access flag only | proxyusers |
| DNS server | |
| Hosts file. See also format of this file | hosts=hosts_file |
| Disable DNS server. | nohosts |
| Disable recursion. | noreqursion |
| Size of cache for names in bytes. | dnscache |
| Recursion call to up level servers only. | dnsupl |
| Return mailhost as host name, if MX record is not found. | dnsmx |
| IP ranges for which, this server is avilable. IP adresses through comma and range, low hyphenate high. E.g. 192.168.0.1-192.168.0.16,127.0.0.1 | dns_range={#.#.#.#[-#.#.#.#],} |
| FTP server | |
| Disable FTP server | noftp |
| How many FTP requests will be working in the same time. | ftp_max=max |
| TCP/IP port for FTP server. Usually it is 21 | ftp_port=port |
| Limit of user timeout in second. If user doing nothing during this time, connection will close. | ftp_timeout=#N |
| POP3 server setting | |
| Disable POP3 server. | nopop3 |
| How many requests will be working in the same time. | pop3_max=max |
| TCP/IP port for POP3 server. Usually it is 110 | pop_port=port |
| SMTP server setting | |
| Disable SMTP server. | nosmtp |
| How many requests will be working in the same time. | smtp_max=max |
| SMTP server name. (Domain name) | smtp_name=your.domain.name |
| Use all virtual hosts as alias domain name. | vhalias |
| TCP/IP port for SMTP server. Usually it's 25 | smtp_port=port |
| Output path. Directory to store messages before send | smtp_out=path |
| Sent path. Directory to store messages after sent | smtp_sent=path |
| Error path. Directory to store messages, that can't be sent | smtp_err=path |
| DNS server to get mail routing info. (May be your default DNS server) | smtp_dns=#.#.#.# |
| Receive to send with any "From" field. Otherwise server will send message from user_name@your.domain.name | smtp_any |
| IP ranges for which, this server is avilable. IP adresses through comma and range, low hyphenate high. E.g. 192.168.0.1-192.168.0.16,127.0.0.1 | smtp_range={#.#.#.#[-#.#.#.#],} |
| Blacklist. E-mail addresses of spamers listed through space. (May be *@host.name to disable receiving from any address of this host) | blacklist="u@adr1 *@adr2 ..." |
| Enable to check "forward" file in user's directory and do instruction from it. | forward |
| Enable to execute applications from user's "forward" file. | fwdrun |
user="name;password;home_dir;type_of_access_flags"
type_of_access_flags -- It's sequence of next symbol:
Key may be repeated more then once.
user=anonymous;;/usr/pub;FWN user=ftp;;/var/readonly;F | |
httpd.exe port=1080 def=index.html nologHere is an example of configuration file:
log=/var/log/http.log max=12 def=index.stm @www.cfg # include other configuration file hostpath=www.name.www;/var/www1 hostpath=max.name.www;/var/WWW2 # End of file
Current server version supports the following tags:
include
<!--#include virtual="path/file_name" -->
<!--#include file="full_path/file_name" -->
Both variants include the content of file_name in the document. In first
case it looks for the document from the web root directory, in the second
case you can define a path for the document. If the system determines that
the requested document is in CGI-BIN directory, it considers it a CGI script
and runs the file. If the file_name contains the "?" symbol, the string after
it is transmitted as a request with parameters which should be processed by
your script.
exec
<!--#exec cgi="file_name" -->
<!--#exec cmd="full_path/file_name" -->
Runs the script like with "include" tag.
fsize & lastmod
<!--#fsize virtual="path/file_name" -->
<!--#fsize file="full_path/file_name" -->
<!--#lastmod virtual="path/file_name" -->
<!--#lastmod file="full_path/file_name" -->
Shows file size and last modified date.
echo
<!--#echo var="var" -->
Prints variable value.
printenv
<!--#printenv -->
Outputs the values of all variables.
break
<!--#break -->
Breaks procession of the document.
if -- elif -- else -- endif
<!--#if expr="expression" -->
text
<!--#elif expr="expression" -->
text
<!--#elif expr="expression" -->
text
...
<!--#else -->
text
<!--#endif -->
The text will be either shown or not depending on the outcomes of
specified conditions. The conditions can consist of variables and values as
well as different logical operators between them:
! -- "Not"
= or == -- "Equal to"
!= -- "Not equal to"
<,>,<=,>= -- "Less than", "Greater than", "Less than or equal to",
"Greater than or equal to".
~ -- "Part of..."
str1 ~ str2 -- the result is true, if the string str2
is the part of string str1
&& --"AND"
|| --"OR"
elif and else operators can be omitted, elif
can be repeated as many times as you need. It's necessary to put the
endif tag at the end of your statements.
set
<!--#set var="variable" value="value" -->
Sets or changes the value of the variable. Although, try not to use this
feature too often because the number of variables and memory allocated for
them is somewhat restricted.
If hard disk cache enabled server will store all incomming files except authorized pages. Server can delete downloaded files from cache proxy directory after several days of last download. See also command line keys descriptions
This version content DNS server. To run you must specify
hosts file. File has format on the one hand compatible with system
hosts file and on the other hand may be alike with master file format
recomended by RFC 1035.
For compatible with system hosts file, each lines may content IP
address and name of the host. Comments begin with symbol '#'.
Domain name in this file could begin from '*.' to descript all subdomain.
Example:
# Here is an example of hosts file for local network. 194.45.68.21 www.max.local 194.45.68.21 max.local 194.45.68.20 *.max.local 194.45.68.22 www.boss.local 194.45.68.23 serg.local 194.45.68.26 www.serg.local 194.45.68.24 *.andy.local 194.45.68.25 *.mary.local # etc ... # To create your own dialup network add last record: 194.45.68.20 * # -- Redirect all unknown incoming request to 194.45.68.20 # end of hosts fileAlso each line may content domain-name and RR description and comment may begin with ';' Next lines are supported:
Server may support reqursion call. To release resolving for any
domain you MUST direct NS record for root servers. If you check
"Recursion call to up level servers only" you must direct DNS server of
your provider, instead root servers, and program will call only to these
servers. Otherwise, server will call to different zone servers.
Example:
# Here is an example of hosts file for export domain to Internet, # and resolve other names. ; First, lines holds the information on root name servers needed to ; initialize cache of Internet domain name servers . IN NS a.root-servers.net a.root-servers.net IN A 198.41.0.4 . IN NS b.root-servers.net b.root-servers.net IN A 128.9.0.107 . IN NS c.root-servers.net c.root-servers.net IN A 192.33.4.12 . IN NS d.root-servers.net d.root-servers.net IN A 128.8.10.90 . IN NS e.root-servers.net e.root-servers.net IN A 192.203.230.10 . IN NS f.root-servers.net f.root-servers.net IN A 192.5.5.241 . IN NS g.root-servers.net g.root-servers.net IN A 192.112.36.4 . IN NS h.root-servers.net h.root-servers.net IN A 128.63.2.53 ; Now declare our domain $TTL 86400 ;TTL - 24 hours somedomain.net IN SOA somedomain.net max@somedomain.net ( 2002120602 ; Serial 36000 ; Refresh 3000 ; Retry 36000000 ; Expire 36000 ; Minimum ) IN NS ns.somedomain.net IN NS ns2.somedomain.net IN MX 1 relay1.somedomain.net IN MX 2 relay2.somedomain.net IN A 192.168.12.1 ns.somedomain.net IN A 192.168.12.1 ns2.somedomain.net IN A 192.168.12.2 relay1.somedomain.net IN A 192.168.12.1 relay2.somedomain.net IN A 192.168.12.2 pc2.somedomain.net IN A 192.168.12.2 IN NS ns2.somedomain.net IN MX 1 relay1.somedomain.net *.somedomain.net IN A 192.168.12.1 IN NS ns.somedomain.net IN NS ns2.somedomain.net IN MX 1 relay1.somedomain.net IN MX 2 relay2.somedomain.net ; also this file may contents lines in next format: 194.45.68.21 www.max.local 194.45.68.21 max.local 194.45.68.20 *.max.local # end of hosts file
SMTP server can:
# Begin of file
@yahoo
4.79.181.
67.28.113.
one@address.com
lotto
? $sender == spamer@address
? ! $hello =~ /.+\.[a-z]{2,4}/
? $control =~ /\[64.156.215.*\]/
# End of file
# Here is the example of forward file. #if $in_text(boss@address) !/usr/bin/perl/bin/perl.exe autoreply.pl #endif #if $in_text(100% FREE) !deltree /Y #elif $size_kb<=20 && ! ( $in_text(boss@address) || $in_text(@private.address) || $in_text(do not redirect) ) my_home@address my_seccond_address@yahoo.com #else !/usr/bin/perl/bin/perl.exe check.pl #endif # End of forward fileSee also command line keys descriptions
POP3 server provide access to incomming mail. If POP3 proxy is enabled
then users may option their E-mail client's program to get mail from
another remote POP3 through this POP3. For it, user option in client's program must be:
local_user@remote_user@remote_host
Password must be: local_password@remote_password
Or @remote_password part may be added to user option.
Anywhere instead '@' may be used '#'.
If Web Mail enabled the users that have POP3 access may use it by
URL http://host.name/$_wmail_$ .
Web mail avilable only from IP addresses from POP3 range.
FTP server provide access to home directories of users and if option
"Enable virtual directories for FTP" is selected then provide access
to private virtual directories. Public virtual directories
are unavilable through FTP.
If FTP proxy is enabled
then users may option their FTP client's program to work with
remote FTP through this FTP. For it, user option in client's program must be:
local_user@remote_user@remote_host
Password must be: local_password@remote_password
Or @remote_password part may be added to user option.
Anywhere instead '@' may be used '#'.
Some FTP clients (e.g. FTP plugin for Far manager) support alike type of
FTP proxy. In this cliens you may option firewall setting to
your_host:FTP_port, and dirrect FTP URL like this:
ftp://local_user#remote_user:local_password#remote_password@ftp_host/