1、安装APACHE HTTPD
下载httpd-2.2.17.tar.gz
解压:
$tar -zxvf httpd-2.2.17.tar.gz
$cd httpd-2.2.17
$./configure –prefix=/opt/dev_soft
$make
$mak install
2、配置虚拟主机
修改 conf/httpd.conf
去掉这行前面的注解:
#Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-vhosts.conf
修改conf/extra/httpd-vhosts.conf
cp httpd-vhosts.conf httpd-vhosts.conf.bak
vim httpd-vhosts.conf
修改ServerName和DocumentRoot后面的文字,改为实际的路径
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin dingjun@myweb.com
DocumentRoot "/home/dingjun/workspace"
ServerName fin.man.myweb.net
ServerAlias fin.man.myweb.net
ErrorLog "logs/fin.man.myweb.net-error_log"
CustomLog "logs/fin.man.myweb.net-access_log" common
</VirtualHost>
3、启动
$bin/httpd -S
测试配置是否有语法错误
启动
$httpd -k start
4、访问
修改hosts
127.0.0.1 fin.man.myweb.net
http://fin.man.myweb.net
提示:
Forbidden
You don't have permission to access / on this server.
这是由于没有对目录/home/dingjun/workspace 赋访问权限引起的。
修改httpd.conf添加
<Directory "/home/dingjun/workspace">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
注意虚拟机配置中的VirtualHost /DocumentRoot同Directory后的路径 。
Options Indexes(表示可以显示目录下文件列表)
Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
这个指令的第一个参数总是from。随后的参数可以有三种不同形式。 如果指定Allow from all,则允许所有主机访问,需要 Deny和Order指 令像下面讨论的那样配置。 要只允许特定一部分主机或主机群访问服务器,host可以用下面任何一种格式来指定:
一个域名(部分)
例子:Allow from apache.org
允许名字与给定字符串匹配或者以该字符串结尾的主机访问。 只有完整的名字组成部分才被匹配,因此上述例子将匹配foo.apache.org而不能匹配fooapache.org。 这样的配置将引起服务器执行一个对客户IP地址的反查域名操作而不管HostnameLookups指 令是否设置
完整的IP地址
例子:Allow from 10.1.2.3
允许一个主机的一个IP地址访问。
部分IP地址
例子:Allow from 10.1
IP地址的开始1到3个字节,用于子网限制。
网络/掩码对
例子:Allow from 10.1.0.0/255.255.0.0
一个网络a.b.c.d,和一个掩码w.x.y.z。用于更精确的子网限制。
网络/nnn 无内别域间路由规格
例子:Allow from 10.1.0.0/16
同前一种情况相似,除了掩码由nnn个高位字节构成。
注意以上后三个例子完全匹配同一组主机。
Deny 指令
说 明:
控制哪些主机被禁止访问服务器
语 法:
Deny from all|host|env=env-variable [host|env=env-variable] ...
上 下文:
目录, .htaccess
覆 盖项:
Limit
状 态:
Base
模 块:
mod_access
这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。 Deny指令的参数设置和Allow指 令完全相同。
Order 指令
说 明:
控制缺省的访问状态和Allow与Deny指令被评估的顺序。
语 法:
Order ordering
默 认值:
Order Deny,Allow
上 下文:
目录, .htaccess
覆 盖项:
Limit
状 态:
Base
模 块:
mod_access
Order指令控制缺省的访问状态和 Allow与Deny指 令被评估的顺序。 Ordering是以下几种范例之一:
Deny,Allow
Deny指 令在 Allow指 令之前被评估。缺省允许所有访问。 任何不匹配Deny指 令或者匹配 Allow指 令的客户都被允许访问服务器。
Allow,Deny
Allow指 令在 Deny指 令之前被评估。缺省禁止所有访问。 任何不匹配Allow指 令或者匹配 Deny指 令的客户都将被禁止访问服务器。
5、设置URL到文件系统的访问
日志文件没有放在应用程序目录中,如果通过http访问,可以通过路径别名的方式设置
<IfModule alias_module>
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
Alias /logs /home/dingjun/logs
</IfModule>
<Directory "/home/dingjun/logs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
6、把配置放在虚拟主机配置中,不做为全局的配置
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin dingjun@myweb.com
DocumentRoot "/home/dingjun/workspace"
ServerName fin.man.myweb.net
ServerAlias fin.man.myweb.net
ErrorLog "logs/fin.man.myweb.net-error_log"
CustomLog "logs/fin.man.myweb.net-access_log" common
<Directory "/home/dingjun/workspace">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory "/home/dingjun/logs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Alias /logs /home/dingjun/logs
</VirtualHost>
7、与TOMCAT集成
下载JK2
tomcat-connectors-1.2.31-src/native$ ./configure –with-apxs=/opt/dev_soft/httpd-2.2.17/bin/apxs
$make
$make install
把jk下生成的配置文件移动到apache下
tomcat-connectors-1.2.31-src$ cp -r conf/ /opt/dev_soft/httpd-2.2.17/conf/jk
/opt/dev_soft/httpd-2.2.17/conf/jk$ mv conf/* ./
$ rmdir conf
即把uriworkermap.properties workers.properties.minimal
httpd-jk.conf workers.properties 放置到/opt/dev_soft/httpd-2.2.17/conf/jk目录下
8、修改httpd.conf
添加:
Include conf/jk/httpd-jk.conf
httpd-jk.conf内容如下:
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile conf/jk/workers.properties
JkLogFile logs/mod_jk.log
# Our JK log level (trace,debug,info,warn,error)
JkLogLevel info
# Our JK shared memory file
JkShmFile logs/mod_jk.shm
…略...
</IfModule>
修改workers.properties
worker.list=fin,jkstatus
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name and the type do not have to match.
#
worker.fin.type=ajp13
worker.fin.host=localhost
worker.fin.port=8009
#
# Defining a load balancer
#
#worker.wlb.type=lb
#worker.wlb.balance_workers=ajp13w
#
# Define status worker
#
worker.jkstatus.type=status
修改uriworkermap.properties,重名名为 uriworkermap_fin.properties,内容如下:
/*.jsp=fin
/*.do=fin
/*.action=fin
在extra/httpd-vhost.conf增加一行,做为fin.man.myweb.net的私有映射文件
JkMountFile conf/jk/uriworkermap_fin.properties
<VirtualHost *:80>
ServerAdmin dingjun@myweb.com
DocumentRoot "/home/dingjun/workspace"
ServerName fin.man.myweb.net
ServerAlias fin.man.myweb.net
ErrorLog "logs/fin.man.myweb.net-error_log"
CustomLog "logs/fin.man.myweb.net-access_log" common
<Directory "/home/dingjun/workspace">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory "/home/dingjun/logs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Alias /logs /home/dingjun/logs
#uri map
JkMountFile conf/jk/uriworkermap_fin.properties
</VirtualHost>
下载httpd-2.2.17.tar.gz
解压:
$tar -zxvf httpd-2.2.17.tar.gz
$cd httpd-2.2.17
$./configure –prefix=/opt/dev_soft
$make
$mak install
2、配置虚拟主机
修改 conf/httpd.conf
去掉这行前面的注解:
#Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-vhosts.conf
修改conf/extra/httpd-vhosts.conf
cp httpd-vhosts.conf httpd-vhosts.conf.bak
vim httpd-vhosts.conf
修改ServerName和DocumentRoot后面的文字,改为实际的路径
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin dingjun@myweb.com
DocumentRoot "/home/dingjun/workspace"
ServerName fin.man.myweb.net
ServerAlias fin.man.myweb.net
ErrorLog "logs/fin.man.myweb.net-error_log"
CustomLog "logs/fin.man.myweb.net-access_log" common
</VirtualHost>
3、启动
$bin/httpd -S
测试配置是否有语法错误
启动
$httpd -k start
4、访问
修改hosts
127.0.0.1 fin.man.myweb.net
http://fin.man.myweb.net
提示:
Forbidden
You don't have permission to access / on this server.
这是由于没有对目录/home/dingjun/workspace 赋访问权限引起的。
修改httpd.conf添加
<Directory "/home/dingjun/workspace">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
注意虚拟机配置中的VirtualHost /DocumentRoot同Directory后的路径 。
Options Indexes(表示可以显示目录下文件列表)
Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
这个指令的第一个参数总是from。随后的参数可以有三种不同形式。 如果指定Allow from all,则允许所有主机访问,需要 Deny和Order指 令像下面讨论的那样配置。 要只允许特定一部分主机或主机群访问服务器,host可以用下面任何一种格式来指定:
一个域名(部分)
例子:Allow from apache.org
允许名字与给定字符串匹配或者以该字符串结尾的主机访问。 只有完整的名字组成部分才被匹配,因此上述例子将匹配foo.apache.org而不能匹配fooapache.org。 这样的配置将引起服务器执行一个对客户IP地址的反查域名操作而不管HostnameLookups指 令是否设置
完整的IP地址
例子:Allow from 10.1.2.3
允许一个主机的一个IP地址访问。
部分IP地址
例子:Allow from 10.1
IP地址的开始1到3个字节,用于子网限制。
网络/掩码对
例子:Allow from 10.1.0.0/255.255.0.0
一个网络a.b.c.d,和一个掩码w.x.y.z。用于更精确的子网限制。
网络/nnn 无内别域间路由规格
例子:Allow from 10.1.0.0/16
同前一种情况相似,除了掩码由nnn个高位字节构成。
注意以上后三个例子完全匹配同一组主机。
Deny 指令
说 明:
控制哪些主机被禁止访问服务器
语 法:
Deny from all|host|env=env-variable [host|env=env-variable] ...
上 下文:
目录, .htaccess
覆 盖项:
Limit
状 态:
Base
模 块:
mod_access
这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。 Deny指令的参数设置和Allow指 令完全相同。
Order 指令
说 明:
控制缺省的访问状态和Allow与Deny指令被评估的顺序。
语 法:
Order ordering
默 认值:
Order Deny,Allow
上 下文:
目录, .htaccess
覆 盖项:
Limit
状 态:
Base
模 块:
mod_access
Order指令控制缺省的访问状态和 Allow与Deny指 令被评估的顺序。 Ordering是以下几种范例之一:
Deny,Allow
Deny指 令在 Allow指 令之前被评估。缺省允许所有访问。 任何不匹配Deny指 令或者匹配 Allow指 令的客户都被允许访问服务器。
Allow,Deny
Allow指 令在 Deny指 令之前被评估。缺省禁止所有访问。 任何不匹配Allow指 令或者匹配 Deny指 令的客户都将被禁止访问服务器。
5、设置URL到文件系统的访问
日志文件没有放在应用程序目录中,如果通过http访问,可以通过路径别名的方式设置
<IfModule alias_module>
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
Alias /logs /home/dingjun/logs
</IfModule>
<Directory "/home/dingjun/logs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
6、把配置放在虚拟主机配置中,不做为全局的配置
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin dingjun@myweb.com
DocumentRoot "/home/dingjun/workspace"
ServerName fin.man.myweb.net
ServerAlias fin.man.myweb.net
ErrorLog "logs/fin.man.myweb.net-error_log"
CustomLog "logs/fin.man.myweb.net-access_log" common
<Directory "/home/dingjun/workspace">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory "/home/dingjun/logs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Alias /logs /home/dingjun/logs
</VirtualHost>
7、与TOMCAT集成
下载JK2
tomcat-connectors-1.2.31-src/native$ ./configure –with-apxs=/opt/dev_soft/httpd-2.2.17/bin/apxs
$make
$make install
把jk下生成的配置文件移动到apache下
tomcat-connectors-1.2.31-src$ cp -r conf/ /opt/dev_soft/httpd-2.2.17/conf/jk
/opt/dev_soft/httpd-2.2.17/conf/jk$ mv conf/* ./
$ rmdir conf
即把uriworkermap.properties workers.properties.minimal
httpd-jk.conf workers.properties 放置到/opt/dev_soft/httpd-2.2.17/conf/jk目录下
8、修改httpd.conf
添加:
Include conf/jk/httpd-jk.conf
httpd-jk.conf内容如下:
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile conf/jk/workers.properties
JkLogFile logs/mod_jk.log
# Our JK log level (trace,debug,info,warn,error)
JkLogLevel info
# Our JK shared memory file
JkShmFile logs/mod_jk.shm
…略...
</IfModule>
修改workers.properties
worker.list=fin,jkstatus
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name and the type do not have to match.
#
worker.fin.type=ajp13
worker.fin.host=localhost
worker.fin.port=8009
#
# Defining a load balancer
#
#worker.wlb.type=lb
#worker.wlb.balance_workers=ajp13w
#
# Define status worker
#
worker.jkstatus.type=status
修改uriworkermap.properties,重名名为 uriworkermap_fin.properties,内容如下:
/*.jsp=fin
/*.do=fin
/*.action=fin
在extra/httpd-vhost.conf增加一行,做为fin.man.myweb.net的私有映射文件
JkMountFile conf/jk/uriworkermap_fin.properties
<VirtualHost *:80>
ServerAdmin dingjun@myweb.com
DocumentRoot "/home/dingjun/workspace"
ServerName fin.man.myweb.net
ServerAlias fin.man.myweb.net
ErrorLog "logs/fin.man.myweb.net-error_log"
CustomLog "logs/fin.man.myweb.net-access_log" common
<Directory "/home/dingjun/workspace">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory "/home/dingjun/logs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Alias /logs /home/dingjun/logs
#uri map
JkMountFile conf/jk/uriworkermap_fin.properties
</VirtualHost>