apache学习

来源:互联网 发布:seo图文教程 编辑:程序博客网 时间:2024/05/08 10:42

1 服务器基本配置:
ServerName       主机的名字。
ServerAdmin      在报错的时候,显示给站点使用者向开发者报告错误的信息。一般推荐设置为email 。
ServerRoot        apache的安装目录。
DocumentRoot  网页文件的存储地址
Alias                   给路径起个别名,可以用于隐藏真实文件的位置。
PidFile                记录apahe夫进程的进程号的文件。
Listen                 监听的端口号

User                  启动守护进程时的用户
Group               启动守护进程的用户所在的组
Timeout           一次链接的过期时间
KeepAlive        是否保持常连接
MaxKeepAliveRequests 一次常连接所接受的最大请求数(在KeepAlive设置为 on时有效)
KeepAliveTimeout           常连接的过期时间
MaxRequestsPerChild   每个子进程的最大请求数目

2 访问控制:
可以使用<Directory>      <File>    <Location>进行访问控制,
<Directory>   文件系统目录的访问权限控制
<File>            文件的访问控制
<Location>    网路路径(url)的访问控制。
常用的选项   Options Allow Deny
注意的是 这三个节点访问控制,支持perl的正则表达式。

3 虚拟主机: 在一个apache中同时启动多个网站的技术。
基于域名的:使用不同的域名区分不同的主机。不再推荐。(因为需要进行域名反解析,在解析失败时,服务将无法启动)
基于Ip的:分为但个ip的,多个ip的 ,单个端口的 多个端口的。最常用的为 基于单ip单端口支持。
配置:
NameVirtualHost:*.80
<VirtualHost:*.80>
DocumentRoot
ServerName www.chengsen.com
</VirtualHost>

4  代理与反向代理

apache可以作为web代理服务器和反向代理服务器使用。

代理服务器:即客户不直接访问某个地址,而是使用某台开启了 代理服务的 服务器,进行访问。
ProxyRequests On
<Proxy *>
Order allow,deny
Allow from all
Deny from 127.0.0.1
</Proxy>
这个配置说明,允许除了本机以外的服务器访问代理。
反向代理:发向本机的访问,有重新被发送到新的机器上,由其它机器进行请求的处理,处理完毕后,返回本机。
以前的方式 是使用 ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /test http://www.163.com/

ProxyPassReverse /test http://www.163.com/  


Apache+jboss+jk集群配置(linux

1准备安装软件

a :jdk1.6
b:apache2.2
c: mod_jk_1.2.31.so
d:jboss4

2安装和配置(ubuntu操作系统)

1:jdk安装,安装完成后记得配置环境变量(ubuntu下就用aget安装无需在配置)(这里不多说了你懂得) 

这样就OK了 
2: mod_jk_1.2.31.so去apache网站下载 http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/v1.2.1/bin/linux/i386/\\ 3:apache2.2 去apache官方网站下载安装(ubuntu下就用aget安装 安装后的文件目录在/etc/apache2)

修改主配置 增加下面两行 
增加配置,如果apache目录下没有conf 可以新建一个目录
在新建一个文件workers.properties 和mod_jk.conf
workers.properties内容如下
# 定义request所要转发到的节点                             
worker.list=loadbalancer,status                         
# 定义节点 Node1                                         
worker.node1.port=8009       #
 jboss默认ajp13端口(不是http端口)
worker.node1.host=192.168.128.130  #jboss主机ip                       
worker.node1.type=ajp13                                 
worker.node1.lbfactor=1     #这个值越大分配到的请求越多                            
                          
# 定义节点 Node2                                         
worker.node2.port=8009                                 
worker.node2.host=192.168.128.132                           
worker.node2.type=ajp13                                 
worker.node2.lbfactor=1                                 
                           
# 负载配置                                               
worker.loadbalancer.type=lb                             
worker.loadbalancer.balance_workers=node1,node2        
worker.loadbalancer.sticky_session=0 #代表request分配方式"0"按jboss性能分. "1"按用户分
worker.status.type=status
 mod_jk.conf配置内容如下

  # Load mod_jk module. Specify the filename
# of the mod_jk lib you?¡¥ve downloaded and
# installed in the previous section
LoadModule jk_module modules/mod_jk.so #新建一个目录modules再将下载下来的so文件重命名
# Where to find workers.properties
JkWorkersFile conf/workers.properties  #刚刚上面的配置文件
# Where to put jk logs
JkLogFile logs/mod_jk.log  #日志文件
# Set the jk log level [debug/error/info]
JkLogLevel info   #日志等级
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkMount /* loadbalancer
 4:jboss 下载 http://www.jboss.org/jbossas/downloads.html
修改server.xml文件 




jvmRoute="node1" 代表节点 要和上面workers.properties节点对应
  

3启动

先启动两台jboss,完成后启动apache服务 
查看我们上面配置好的mod_jk.log 文件

说明成功了

Apache配置过程遇到的问题


1. 编译参数

--prefix=/usr/alibaba/install/httpd22 --enable-so --with-included-apr --with-mpm=worker --disable-authn-file --disable-authn-default --disable-authz-groupfile --disable-authz-user --disable-authz-default --disable-auth-basic --disable-include --disable-filter --disable-status --disable-autoindex --disable-negotiation --disable-actions --disable-userdir --disable-version --disable-proxy-connect --disable-proxy-ftp --disable-proxy-scgi --disable-proxy-ajp --enable-modules='rewrite deflate headers expires proxy' --enable-mods-shared='cgid ssl include'

2. mod_deflate has been requested but can not be built due to prerequisite failures(ubuntu centent)

缺少:zlib1g-dev
安装:sudo apt-get install zlib1g-dev

3. No recognized SSL/TLS toolkit detected

缺少:openssl-devel
安装:sudo apt-get install openssl-devel

4. let not found

ubuntu用的是dash,而不是bash, 需将默认的shell改回bash
执行sudo dpkg-reconfigure dash后,选择no。

5. curl:找不到命令

缺少: curl
安装:sudo apt-get install curl

6. %w/cookie_log': Permission denied Unable to open logs

添加相关文件的执行权限

Apache Rewrite 规则跳转常见配置

1、Rewrite规则简介: 
Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。 
基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。 
基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

2、举例说明: 
例一.下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.alibaba.cn和70.40.213.183都跳转到主机前缀为http://www.alibaba.com,避免相同内容的网页有多个指向的域名,如http://alibaba.com。 

NameVirtualHost70.40.213.183:80
ServerAdmin duanxf@ alibaba.com
DocumentRoot"/web"
ServerName alibaba.com&nbsp;
RewriteEngine on #打开rewirte功能
RewriteCond %{HTTP_HOST} \!^www.alibaba.com \[NC\] #声明Client请求的主机中前缀不是www.alibaba.com,其中 \[NC\] 的意思是忽略大小写
RewriteCond %{HTTP_HOST}\!^70.40.213.183\[NC\] #声明Client请求的主机中前缀不是70.40.213.183,其中 \[NC\] 的意思是忽略大小写
RewriteCond %{HTTP_HOST} \!^$ #声明Client请求的主机中前缀不为空
RewriteRule \^(.*) http://www.alibaba.com/ [L] #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.alibaba.com/,[L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.\*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的(.*)字符。&nbsp;

3.Apache mod_rewrite规则重写的标志一览 
1) R[=code](force redirect) 强制外部重定向

强制在替代字符串加上http://thishost\[:thisport\]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。

2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。

3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。

4) P(force proxy) 强制使用代理转发。

5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。

6) N(next round) 重新从第一条规则开始运行重写过程。

7) C(chained with next rule) 与下一条规则关联 
如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。 
8) T=MIME-type(force MIME type) 强制MIME类型

9) NS (used only if no internal sub-request) 只用于不是内部子请求

10) NC(no case) 不区分大小写

11) QSA(query string append) 追加请求字符串

12) NE(no URI escaping of output) 不在输出转义特殊字符

例如:RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zoo

13) PT(pass through to next handler) 传递给下一个处理

例如:

RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理

Alias /def /ghi

14) S=num(skip next rule(s)) 跳过num条规则

15) E=VAR:VAL(set environment variable) 设置环境变量 
URL重定向 
例子一:

同时达到下面两个要求:

1.用http://www.alibaba.com/home.html 来访问 http://www.alibaba.com/home/

2.用http://powercctv.alibaba.com 来访问 http://www.aliaba.com/user.html?username=powercctv 的功能 

RewriteEngine On
RewriteCond %{HTTP_HOST}
^www.alibaba.com
RewriteCond %{REQUEST_URI} !^home.html$
RewriteCond %{REQUEST_URI}.html$
RewriteRule (.*).html$ [http://www.alibaba.com/$1/] [R]
RewriteCond %{HTTP_HOST} !^www.alibaba.com
RewriteRule ^(.+) %{HTTP_HOST}[C]
RewriteRule ^([^.]+).aliaba.com [http://www.alibaba.com/user.html?username=$1]

例子2:

冒号问题。

假如:我们的url有冒号,这就比较痛苦了。通常的url跳转整个匹配遇到冒号是会有问题的。因为我们的url含有冒号开头。这个时候就需要采用rewritecond进行匹配。

RewriteCond %{QUERY_STRING} ^action=mcweb\:(.*)
 RewriteRule \^/mcweb/contact.htm(.*)$             ${message_alibaba_com}/msgsend/contact.htm?action=%1    [L,R,NE]

Apache的跳转如果不加任何说明他会把匹配到的字符串后面的参数全部加到新跳转的URL上面。比如上面,所有跳转到mcweb/contact.htm这个链接问号后面的参数和

RewriteCond %{QUERY_STRING} ^action=mcweb\:-( .*)

进行匹配,如果发现雷同,则跳转到message.alibaba.com/msgsend/contact.htm?action= 的后面%1就是匹配到的之后相同的字符串。如果有多个则多来几个(.*) %n就可以了
Apache的rewrite跳转还有先后顺序,如果我想^/mcweb/contact.htm(.*)$包含mcweb在内的所有访问contact.htm全部跳转到/msgsend/contact.htm  同时所有的action=mcweb: 这样的url也都跳转到 

message.alibaba.com/msgsend/contact.htm?action= 这个url,那么需要在这个配置后面加一行:
RewriteRule ^/mcweb/contact.htm ${message_alibaba_com}/msgsend/contact.htm [L,R,NE]

如果我们匹配的时候只需要匹配冒号:那就比较简单了

RewriteRule ^wiki/(.*:.*)  wiki/index.php?title=$1[L]
Labels:

apache启动失败,找不到.so及解决方法

  • 搭建news的时候, apache启动不了,报找不到某一个.so文件,看了一下http.conf,还写着很多需要的.so,因为news此时还是32位的,用的apache2.0,而我的开发环境是2.2.
  • 为了解决,到别人机器上拷贝了一份2.0,重新启动,又报另一个错误:
    /usr/ali/apache2/bin/httpd: error whileloading shared libraries: libaprutil-0.so.0:
    cannot open shared object file: No such file or directory
  • google了一下,出现这个错误的原因是:动态链接库中没有添加apache2.0的库的路径,所以编译器只会使用/lib和/usr/lib这两个目录下的库文件。
  • 解决方法:把apache2.0的库目录加入到动态链接库中。具体做法是:
    • 将apache的lib路径加入到/etc/ld.so.conf文件
    • 执行ldconfig
  • ldconfig是什么?
    作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用
    因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig
    使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的

通过apache服务器引用本地的JS以及CSS文件


一.概述

在tpolps中会引入一些JS以及CSS文件,这写文件都是通过URL的方式引入的,通过URL的方式来访问线上的JSS和CSS文件,本次项目中需要对这些CSS以及JS进行修改,这就说明我们不能在引入线上的CSS以及JS文件了,需要引入本地修改后的CSS以及JS文件,这需要Apache服务器的支持,把CSS以及JS文件放在本地,在本地配置apache服务器,然后在apache服务器上配置JS以及CSS文件的路径,启动apache就可以访问相应的文件了。

二.apache服务器的安装

sudo apt-get install apache2
然后查找一下apache2的安装路径:whereis apache2,我的路径显示为/etc/apache2

三.apache服务器的配置

进入apache的安装目录:cd /etc/apache2
然后编辑 httpd.conf文件的内容(如果没有就创建一个):
<VirtualHost *:80>
ServerName style.china.alibaba.com
DocumentRoot /home/yangbolin/workspace/EC/style_bp
RewriteEngine On
RewriteRule ^/app/bp(.*) /home/yangbolin/workspace/EC/style_bp$1 L
RewriteRule ^(.*)$ http:\/\/172\.22\.35\.70$1
</VirtualHost>

/home/yangbolin/workspace/EC/style_bp为CSS以及JS文件的路径
接下来需要在本地进行绑定:127.0.0.1 style.china.alibaba.com

四.启动/停止apache服务器

sudo a2enmod rewrite
sudo service apache2 start
sudo service apache2 stop


Apache Rewrite

今天学习了一下httpd文件下面的配置文件,发现脚本里好多东西都看不懂,如下:

<VirtualHost *>
    RewriteEngine on
    RewriteCond %{HTTP_HOST}   ^(levit\.china\.alibaba\.com:?[0-9]*)$ [NC]
    #access / or index.html, then jump to china site.
    RewriteRule ^/(index.html?)?$  http://china.alibaba.com [L,R=301,QSA]
 
    RewriteCond %{HTTP_HOST}   ^(trust\.china\.alibaba\.com:?[0-9]*)$ [NC]
    #access / or index.html, then jump to china site.
    RewriteRule ^/(index.html?)?$  http://china.alibaba.com [L,R=301,QSA]
</VirtualHost>

不过上网查查发现里面的语法还是比较简单的,以后对脚本有看不懂的多问问身边的同事,多上网查查,你就不会觉得他们陌生了。
这里记一下RewriteEngine、RewriteRule、RewriteCond的用法,日后参考:

RewriteCond 重写规则执行条件
  • 语法: RewriteCond TestString CondPattern
  • 生效域: server config, virtual host, directory, .htaccess
    特别的上面的 TestString, 可提供反向引用. 引用模式为: %N 其中N为(0 <= N <=9), 引用当前若干RewriteCond条件中最后符合的条件中的分组成分, 也就是括号里的内容.不过用到的不多. 反向应用多在RewriteRule里常用.
    RewriteCond 语法中的 TestStrng 为要被检查的内容, CondPattern 是进行匹配的规则, 它是一个兼容Perl风格的正则表达式和一些其他的特有字符属性. 这里介绍一下.
    第一个: ! (感叹号) 表示否的意思. 比如一个条件: 判断访问此页面的上一页URL是否包含 sex 字符的话可以用这样: RewriteCond %{HTTP_REFERER} !(sex)
    第二个: < 就是小于的意思, TestString < CondPattern.
    第三个: > 就是大于于的意思, TestString < CondPattern.
    第四个: = 相等的意思. <, >, = 三个和通常程序语言使用的 <, >, = 功能类似.
    第五个: -d 是否是一个目录. 判断TestString是否不是一个目录可以这样: !-d
    第六个: -f 是否是一个文件. 判断TestString是否不是一个文件可以这样: !-f
    第七个: -s 是否是一个正常的有大小的文件. 判断TestString是否不是一个正常的有大小的文件可以这样: !-s
    第八个: -l 是否是一个快捷方式文件. 判断TestString是否不是一个快捷方式文件可以这样: !-l
    第九个: -x 是否是一个文件并且又执行权限. 判断TestString是否不是一个文件并且又执行权限可以这样: !-x
    第十个: -F 检查TestString是否是一个合法的文件,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。
    第十一个: -U 检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能.
    另外: RewriteCond 指令后面可带 Flag, 现在只要2个可用, 一个是 NC|nocase, 不区分大小写的意思. 一个是 OR|ornext 表示连接下一个条件的意思.
    RewriteCond 实际需要使用情况比如要判断一个条件成真的时候才执行相关的重写操作. 紧接着它下面的 RewriteRule 总是在RewriteCond 条件判断为真的时候才被执行.
    看下面的一个例子:
    #开启服务器重写模式
    RewriteEngine on
    #来自 www.test.cn 的连接访问本站时都只能访问 test.php 这页.
    RewriteCond %{HTTP_REFERER} (www.test.cn)
    RewriteRule (.*)$ test.php
    #来自 www.test.com 的连接访问本站时都只能访问 newTest.php 这页.
    RewriteCond %{HTTP_REFERER} (www.test.com)
    RewriteRule (.*)$ newTest.php

Apache,autoconfig,mod_jk,Jboss配置参数学习


从apache的配置文件参数开始,学习apache, jboss, mod_jk, jvm,log4j的配置,具体到每一个配置项内容。
之前也有学习,但局限与学习他们的功能和作用,这里深入学习到配置的每一个参数。

  1. Apache RewriteRule
    这是Apache中重定向模块,负责根据用户提交的http请求,进行URL重定向。

    在magellan代码的virtualhost模块(irtualhost.conf.vm)中为每一个应用的component定义了一系列的重定向规则,比如产品搜索:

    ## Product关键词搜索页面,新静态参数类型url
        RewriteRule ^/products/F0/([2012-08-09Apache,autoconfig,mod_jk,Jboss配置参数学习^/]+)/([2012-08-09Apache,autoconfig,mod_jk,Jboss配置参数学习^/]+)/([0-9]*).html$                     http://$tmp_target_url/product/productKeyword.vhtml?&staticParam=$2&SearchText=$1&page=$3&isF0Pattern=Y [L,P,QSA]
        RewriteRule ^/products/F0/([2012-08-09Apache,autoconfig,mod_jk,Jboss配置参数学习^/]+)/([0-9]+).html$                             http://$tmp_target_url/product/productKeyword.vhtml?&staticParam=&SearchText=$1&page=$2&isF0Pattern=Y [L,P,QSA]
        RewriteRule ^/products/F0/([2012-08-09Apache,autoconfig,mod_jk,Jboss配置参数学习^/]+)/([2012-08-09Apache,autoconfig,mod_jk,Jboss配置参数学习^/]+).html$                              http://$tmp_target_url/product/productKeyword.vhtml?&staticParam=$2&SearchText=$1&page=1&isF0Pattern=Y [L,P,QSA]
        RewriteRule ^/products/F0/([2012-08-09Apache,autoconfig,mod_jk,Jboss配置参数学习^/]+).html$                                      http://$tmp_target_url/product/productKeyword.vhtml?&staticParam=&SearchText=$1&page=1&isF0Pattern=Y [L,P,QSA]

    他们按照严格的perl正则表达式的方式进行URL的匹配。特别注意的是

    1. 右边的$1,$2,分别表示左边括号()中匹配的内容,分别按照顺序表示第一个()和第二个()中匹配的内容,以此类推。
    2. 右边方括号中的L, P, QSA的意义。方括号[]内的标志表示匹配整条规则之后的动作。这里分别说明这三个标记位的意思,更多详细内容可以查看Apache Rewrite Flags
      标签内容LLast,表示停止,当匹配了当前规则之后,跳过下面的所有规则,不再进行匹配PProxy,表示代理,当前的规则将由匹配之后右边的URL对应的服务器来代理处理,这是一个反向代理QSAQsappend,参数拼接,也就是拼接完成之后,依然能够把原先的?key=value的结果保持到新的重定向的内容后面
  2. autoconfig
    在学习之前可能要先了解这些配置文件的关联关系。首先在deploy目录下有意个autoconf目录和conf目录,其中autoconf是由一系列“变量”设置的配置文集(.vm)构成,使用的时候需要通过antx(一般用maven的antx插件)把这些变量类型的文件都统一生成对应的.conf文件,存放在conf目录下.系统真正启动过程中读取的就是conf目录下的配置文件。
    之所以使用.vm这些通过变量来配置的文件的目的是为了在不同环境之间方便地安装,而不许要繁琐的环境参数的修改。
    1. 参数传递过程. antx.properties -> autoconfig/*.vm -> config/*.conf
      这样在运行maven install的时候就可以制动生成对应的.conf文件。这其中在第一步转化中,需要注意的一点是:
      1. 在antx.properties的变量中,变量名中包含“.”的时候,在autoconfig/*.vm中或者该变量的时候要把“.”替换成“_”。(这是antx中的规定)。
      2. antx运行过程中,默认就会去个人home目录下寻找antx.properties文件
    2. 在maven中配置antx插件
      在pom.xml中告诉maven使用antx来build工程。(下面省略了部分不重要xml内容)
      <groupId>com.alibaba.maven.plugins</groupId>
               <artifactId>maven-autoconf-plugin</artifactId>
               <configuration>
                   <destFiles>
                       <destFile>${project.basedir}</destFile>
                   </destFiles>
               <includeDescriptorPatterns>
               <includeDescriptorPattern>**/autoconf/auto-config.xml</includeDescriptorPattern>
               </includeDescriptorPatterns>
      </configuration>

      其中,在 <includeDescriptorPattern>**/autoconf/auto-config.xml</includeDescriptorPattern>中需要定义好这些配置文件.vm与.conf的对应关系,

      <generatetemplate="virtualhost.conf.vm"destfile="conf/virtualhost.conf"charset="UTF-8"/>
  3. mod_jk配置
    mod_jk在之前有的学习中也已经进行了学习,了解了mod_jk是负载均衡的重要模块。其中mod_jk的配置文件需要在httpd.conf中要进行配置,指定mod_jk的配置文件mod_jk.conf的位置:
    Include ${alibaba_intl_magellan_deploy}/conf/mod-jk.conf

    其中${alibaba_intl_magellan_deploy}就是在antx.properties中的变量alibaba.intl.magellan.deploy的值
    在mod-jk.conf的文件中需要说明需要分发到的工作节点的个数,这些节点的信息配置在:

    JkWorkersFile ${alibaba_intl_magellan_deploy}/conf/workers.properties

    mod-jk.conf中的配置信息都比较好理解,详细的配置参数可以参考work with mod_jk.

  4. JBoss配置
    Jboss的主要配置没有其他配置复杂,修改的动态参数也不多,主要是一些classpath以及根目录的设置。主要的设置在下面的XML文件的标签中:
    <mbeancode="org.jboss.web.WebService"
          name="jboss:service=WebService">

    其中为了能够在antx参数动态注入之后,还能够在jboss启动的同时也保留动态参数的设置,因此在jboss的.vm中经常出现:

    #set ($dollar="$")
    <attribute name="Host">${dollar}{jboss.bind.address}</attribute>
          <attribute name="BindAddress">${dollar}{jboss.bind.address}</attribute>

    这点的确比较有意思。为了能够在最后生成的.conf文件中出现$符号,这里先set一个变量为$。不知道是否可以直接使用velocity的转义字符直接对$进行转义。

  5. 体会
    通过看antx的参数,再看.vm的配置文件,再看.conf,可以很清楚地知道,哪些参数是我们自己设置的,哪些是系统自身就有的,的确能够节省不少时间。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃母乳的宝宝不吃奶粉怎么办 宝宝吃母乳不吃奶粉怎么办 1岁婴儿不吃辅食怎么办 不喝奶瓶的宝宝怎么办 母乳不足宝宝不吃奶粉怎么办 4岁宝宝注意力不集中怎么办 孩子上课不专心听讲怎么办 小孩上课不认真听讲怎么办 一年级孩子上课不认真听讲怎么办 打了孩子很自责怎么办 4岁宝宝讲话结巴怎么办 网销客户不说话怎么办 两岁宝宝不说话怎么办? 4岁儿童说话结巴怎么办 3岁宝宝说话结巴怎么办 6岁儿童舌头短怎么办 5岁宝宝说话结巴怎么办 两岁宝宝说话晚怎么办 6岁儿童说话结巴怎么办 2岁宝宝呕吐拉稀怎么办 2岁宝宝突然呕吐怎么办 2岁宝宝呕吐发烧怎么办 2岁宝宝呕吐厉害怎么办 1岁宝宝半夜呕吐怎么办 2岁半宝宝呕吐怎么办 2岁宝宝半夜呕吐怎么办 两岁宝宝一直吐怎么办 原画师老了以后怎么办 孩子不想上学怎么办怎么去说服 嫉妒别人比我好怎么办 三岁宝宝爱打人怎么办 1岁宝宝喜欢打人怎么办 ps图层解锁不了怎么办 沈腾结婚马丽怎么办 延长甲没有纸托怎么办 高考第一志愿没录取怎么办 电子画颜料干了怎么办 数字画颜料干了怎么办 彩砂纸画不好了怎么办 宝宝吃了油画棒怎么办 2岁宝宝不爱刷牙怎么办