关于虚拟主机的问题

由 冷雪 在 07-24-2003 11:45 发表:

关于虚拟主机的问题

我的系统是: RH9

eth0: 192.168.0.249

dns: www.cool.com 192.168.0.249

dns: www.go.com 192.168.0.249

就是用同一个IP 给不同的域名做解析,做虚拟主机,也就是基于域名的:有关

httpd.conf 配置如下:

Aliases: Add here as many aliases as you need (with no limit). The format is

Alias fakename realname

Note that if you include a trailing / on fakename then the server will

require it to be present in the URL. So "/icons" isn't aliased in this

example, only "/icons/". If the fakename is slash-terminated, then the

realname must also be slash terminated, and if the fakename omits the

trailing slash, the realname must also omit it.

We include the /icons/ alias for FancyIndexed directory listings. If you

do not use FancyIndexing, you may comment this out.

Alias /icons/ "/var/www/icons/"

 1<directory "="" icons"="" var="" www="">   
 2  
 3Options Indexes MultiViews   
 4  
 5AllowOverride None   
 6  
 7Order allow,deny   
 8  
 9Allow from all   
10  
11</directory>

This should be changed to the ServerRoot/manual/. The alias provides

the manual, even if you choose to move your DocumentRoot. You may comment

this out if you do not care for the documentation.

Alias /manual "/var/www/manual"

 1<directory "="" manual"="" var="" www="">   
 2  
 3Options Indexes FollowSymLinks MultiViews   
 4  
 5AllowOverride None   
 6  
 7Order allow,deny   
 8  
 9Allow from all   
10  
11</directory>
1<ifmodule mod_dav_fs.c="">   
2  
3# Location of the WebDAV lock database.   
4  
5DAVLockDB /var/lib/dav/lockdb   
6  
7</ifmodule>

ScriptAlias: This controls which directories contain server scripts.

ScriptAliases are essentially the same as Aliases, except that

documents in the realname directory are treated as applications and

run by the server when requested rather than as documents sent to the client.

The same rules about trailing "/" apply to ScriptAlias directives as to

Alias.

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

 1<ifmodule mod_cgid.c="">   
 2  
 3#   
 4  
 5# Additional to mod_cgid.c settings, mod_cgid has Scriptsock <path>   
 6  
 7# for setting UNIX socket for communicating with cgid.   
 8  
 9#   
10  
11Scriptsock run/httpd.cgid   
12  
13</path></ifmodule>

"/var/www/cgi-bin" should be changed to whatever your ScriptAliased

CGI directory exists, if you have that configured.

 1<directory "="" cgi-bin"="" var="" www="">   
 2  
 3AllowOverride None   
 4  
 5Options None   
 6  
 7Order allow,deny   
 8  
 9Allow from all   
10  
11</directory>

Redirect allows you to tell clients about documents which used to exist in

your server's namespace, but do not anymore. This allows you to tell the

clients where to look for the relocated document.

Example:

Redirect permanent /foo http://www.andsky.com/bar

Directives controlling the display of server-generated directory listings.

FancyIndexing is whether you want fancy directory indexing or standard.

VersionSort is whether files containing version numbers should be

compared in the natural way, so that `apache-1.3.9.tar' is placed before

`apache-1.3.12.tar'.

IndexOptions FancyIndexing VersionSort NameWidth=*

AddIcon* directives tell the server which icon to show for different

files or filename extensions. These are only displayed for

FancyIndexed directories.

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*

AddIconByType (IMG,/icons/image2.gif) image/*

AddIconByType (SND,/icons/sound2.gif) audio/*

AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe

AddIcon /icons/binhex.gif .hqx

AddIcon /icons/tar.gif .tar

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip

AddIcon /icons/a.gif .ps .ai .eps

AddIcon /icons/layout.gif .html .shtml .htm .pdf

AddIcon /icons/text.gif .txt

AddIcon /icons/c.gif .c

AddIcon /icons/p.gif .pl .py

AddIcon /icons/f.gif .for

AddIcon /icons/dvi.gif .dvi

AddIcon /icons/uuencoded.gif .uu

AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl

AddIcon /icons/tex.gif .tex

AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..

AddIcon /icons/hand.right.gif README

AddIcon /icons/folder.gif ^^DIRECTORY^^

AddIcon /icons/blank.gif ^^BLANKICON^^

DefaultIcon is which icon to show for files which do not have an icon

explicitly set.

DefaultIcon /icons/unknown.gif

AddDescription allows you to place a short description after a file in

server-generated indexes. These are only displayed for FancyIndexed

directories.

Format: AddDescription "description" filename

#AddDescription "GZIP compressed document" .gz

#AddDescription "tar archive" .tar

#AddDescription "GZIP compressed tar archive" .tgz

ReadmeName is the name of the README file the server will look for by

default, and append to directory listings.

HeaderName is the name of a file which should be prepended to

directory indexes.

ReadmeName README.html

HeaderName HEADER.html

IndexIgnore is a set of filenames which directory indexing should ignore

and not include in the listing. Shell-style wildcarding is permitted.

IndexIgnore .??* ~ # HEADER README RCS CVS *,v *,t

AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress

information on the fly. Note: Not all browsers support this.

Despite the name similarity, the following Add* directives have nothing

to do with the FancyIndexing customization directives above.

AddEncoding x-compress Z

AddEncoding x-gzip gz tgz

DefaultLanguage and AddLanguage allows you to specify the language of

a document. You can then use content negotiation to give a browser a

file in a language the user can understand.

Specify a default language. This means that all data

going out without a specific language tag (see below) will

be marked with this one. You probably do NOT want to set

this unless you are sure it is correct for all cases.

* It is generally better to not mark a page as

* being a certain language than marking it with the wrong

* language!

DefaultLanguage nl

Note 1: The suffix does not have to be the same as the language

keyword --- those with documents in Polish (whose net-standard

language code is pl) may wish to use "AddLanguage pl .po" to

avoid the ambiguity with the common suffix for perl scripts.

Note 2: The example entries below illustrate that in some cases

the two character 'Language' abbreviation is not identical to

the two character 'Country' code for its country,

E.g. 'Danmark/dk' versus 'Danish/da'.

Note 3: In the case of 'ltz' we violate the RFC by using a three char

specifier. There is 'work in progress' to fix this and get

the reference data for rfc1766 cleaned up.

Danish (da) - Dutch (nl) - English (en) - Estonian (et)

French (fr) - German (de) - Greek-Modern (el)

Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (kr)

Portugese (pt) - Luxembourgeois* (ltz)

Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz)

Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)

Russian (ru) - Croatian (hr)

AddLanguage da .dk

AddLanguage nl .nl

AddLanguage en .en

AddLanguage et .et

AddLanguage fr .fr

AddLanguage de .de

AddLanguage he .he

AddLanguage el .el

AddLanguage it .it

AddLanguage ja .ja

AddLanguage pl .po

AddLanguage kr .kr

AddLanguage pt .pt

AddLanguage nn .nn

AddLanguage no .no

AddLanguage pt-br .pt-br

AddLanguage ltz .ltz

AddLanguage ca .ca

AddLanguage es .es

AddLanguage sv .se

AddLanguage cz .cz

AddLanguage ru .ru

AddLanguage tw .tw

AddLanguage zh-tw .tw

AddLanguage hr .hr

LanguagePriority allows you to give precedence to some languages

in case of a tie during content negotiation.

Just list the languages in decreasing order of preference. We have

more or less alphabetized them here. You probably want to change this.

LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw

ForceLanguagePriority allows you to serve a result page rather than

MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)

[in case no accepted languages matched the available variants]

ForceLanguagePriority Prefer Fallback

Specify a default charset for all pages sent out. This is

always a good idea and opens the door for future internationalisation

of your web site, should you ever want it. Specifying it as

a default does little harm; as the standard dictates that a page

is in iso-8859-1 (latin1) unless specified otherwise i.e. you

are merely stating the obvious. There are also some security

reasons in browsers, related to javascript and URL parsing

which encourage you to always set a default char set.

AddDefaultCharset ISO-8859-1

Commonly used filename extensions to character sets. You probably

want to avoid clashes with the language extensions, unless you

are good at carefully testing your setup after each change.

See ftp://ftp.isi.edu/in-notes/iana/ass.../character-sets for

the official list of charset names and their respective RFCs

AddCharset ISO-8859-1 .iso8859-1 .latin1

AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen

AddCharset ISO-8859-3 .iso8859-3 .latin3

AddCharset ISO-8859-4 .iso8859-4 .latin4

AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru

AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb

AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk

AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb

AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk

AddCharset ISO-2022-JP .iso2022-jp .jis

AddCharset ISO-2022-KR .iso2022-kr .kis

AddCharset ISO-2022-CN .iso2022-cn .cis

AddCharset Big5 .Big5 .big5

For russian, more than one charset is used (depends on client, mostly):

AddCharset WINDOWS-1251 .cp-1251 .win-1251

AddCharset CP866 .cp866

AddCharset KOI8-r .koi8-r .koi8-ru

AddCharset KOI8-ru .koi8-uk .ua

AddCharset ISO-10646-UCS-2 .ucs2

AddCharset ISO-10646-UCS-4 .ucs4

AddCharset UTF-8 .utf8

The set below does not map to a specific (iso) standard

but works on a fairly wide range of browsers. Note that

capitalization actually matters (it should not, but it

does for some browsers).

See ftp://ftp.isi.edu/in-notes/iana/ass.../character-sets

for a list of sorts. But browsers support few.

AddCharset GB2312 .gb2312 .gb

AddCharset utf-7 .utf7

AddCharset utf-8 .utf8

AddCharset big5 .big5 .b5

AddCharset EUC-TW .euc-tw

AddCharset EUC-JP .euc-jp

AddCharset EUC-KR .euc-kr

AddCharset shift_jis .sjis

AddType allows you to add to or override the MIME configuration

file mime.types for specific file types.

AddType application/x-tar .tgz

AddHandler allows you to map certain file extensions to "handlers":

actions unrelated to filetype. These can be either built into the server

or added with the Action directive (see below)

To use CGI scripts outside of ScriptAliased directories:

(You will also need to add "ExecCGI" to the "Options" directive.)

#AddHandler cgi-script .cgi

For files that include their own HTTP headers:

#AddHandler send-as-is asis

For server-parsed imagemap files:

AddHandler imap-file map

For type maps (negotiated resources):

(This is enabled by default to allow the Apache "It Worked" page

to be distributed in multiple languages.)

AddHandler type-map var

Filters allow you to process content before it is sent to the client.

To parse .shtml files for server-side includes (SSI):

(You will also need to add "Includes" to the "Options" directive.)

AddOutputFilter INCLUDES .shtml

Action lets you define media types that will execute a script whenever

a matching file is called. This eliminates the need for repeated URL

pathnames for oft-used CGI file processors.

Format: Action media/type /cgi-script/location

Format: Action handler-name /cgi-script/location

Customizable error responses come in three flavors:

1) plain text 2) local redirects 3) external redirects

Some examples:

#ErrorDocument 500 "The server made a boo boo."

#ErrorDocument 404 /missing.html

#ErrorDocument 404 "/cgi-bin/missing_handler.pl"

#ErrorDocument 402 http://www.andsky.com/subscription_info.html

Putting this all together, we can Internationalize error responses.

We use Alias to redirect any /error/HTTP_

 1<error>.html.var response to   
 2  
 3# our collection of by-error message multi-language collections. We use   
 4  
 5# includes to substitute the appropriate text.   
 6  
 7#   
 8  
 9# You can modify the messages' appearance without changing any of the   
10  
11# default HTTP_<error>.html.var files by adding the line;   
12  
13#   
14  
15# Alias /error/include/ "/your/include/path/"   
16  
17#   
18  
19# which allows you to create your own set of files by starting with the   
20  
21# /var/www/error/include/ files and   
22  
23# copying them to /your/include/path/, even on a per-VirtualHost basis.   
24  
25#   
26  
27  
28  
29Alias /error/ "/var/www/error/"   
30  
31  
32  
33<ifmodule mod_negotiation.c="">
34<ifmodule mod_include.c="">
35<directory "="" error"="" var="" www="">   
36  
37AllowOverride None   
38  
39Options IncludesNoExec   
40  
41AddOutputFilter Includes html   
42  
43AddHandler type-map var   
44  
45Order allow,deny   
46  
47Allow from all   
48  
49LanguagePriority en es de fr   
50  
51ForceLanguagePriority Prefer Fallback   
52  
53</directory>   
54  
55  
56  
57ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var   
58  
59ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var   
60  
61ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var   
62  
63ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var   
64  
65ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var   
66  
67ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var   
68  
69ErrorDocument 410 /error/HTTP_GONE.html.var   
70  
71ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var   
72  
73ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var   
74  
75ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var</ifmodule></ifmodule></error></error>
Published At
Categories with 服务器类
Tagged with
comments powered by Disqus