环境说明:CentOS6.5下JDK1.6、apache2.2、resin3.1 源码编译安装
注: 本文由工具直接word转换为md, 没有做代码高亮等格式化处理, 观感较差.
一.JDK安装
a) 下载JDK安装包jdk-6u29-linux-x64-rpm.bin
b) 修改权限(改为可运行+x) chmod +x jdk-6u29-linux-x64-rpm.bin
c) 执行 ./jdk-6u29-linux-x64-rpm.bin
d) 设置系统环境变量。
为防止出现乱码
(编辑/etc/profile 添加export
LC_ALL=zh_CN.GB18030保存退出。 source /etc/profile)
Vi /etc/sysconfig/i18n
注释以下句(使用注释不用删除,防止以后找回时没有)
#LANG=”en_US.UTF-8”
#SYSFONT=”latarcyrheb-sun16”
添加以下句
LANG=”zh_CN.GB18030”
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”lat0-sun16”
在/etc/profile最下面加上以下几段
# set java
JAVA_HOME=/usr/java/jdk1.6.0_29
PATH=\$JAVA_HOME/bin:\$PATH CLASSPATH=.:\$JAVA_HOME/lib
JRE_HOME=\$JAVA_HOME/jre
export JAVA_HOME PATH CLASSPATH JRE_HOME
export LC_ALL=zh_CN.GB18030
保存退出。
source /etc/profile
e)测试下JDK是否成功。
java -version 如果出现以下信息说明JDK配置成功。
java version “1.6.0_29”
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)
二. 防火墙允许服务(安装完系统要做)
iptables -L 列出目前防火墙设置
iptables -F 清空防火墙规则
或者直接删除 /etc/sysconfig/ 下 iptables 和iptables.old 文件
vi /etc/selinux/config
SELINUX=disabled 关闭系统安全策略(永久,需重启)
getenforce 获取目前状态
setenforce 0 临时改(无需重启)
三. 安装apache
安装GCC等组件(如果系统没有安装)
如果安装apache提示“no acceptable C compiler found in
\$PATH”,这是因为系统中没有安装gcc
yum install -y gcc gcc-c++ zlib-devel
(1)下载apache,下载地址为:http://mirror.esocc.com/apache//httpd/httpd-2.2.31.tar.gz
(2)tar zxvf httpd-2.2.31.tar.gz
(3)cd httpd-2.2.31
(4)./configure –prefix=/usr/local/httpd –enable-so –enable-mods-shared=most
–with-mpm=worker –with-included-apr –enable-expires=shared
–enable-deflate=shared –enable-rewrite=shared –enable-static-support
(5)make && make install
(6)apache安装完成后,进入/usr/local/httpd/bin/目录下,执行./apachectl
start命令启动apache
(7)centos本机访问,使用curl -I
http://127.0.0.1/命令查看apache服务是否安装正常。(如显示OK 代号200 说明成功)
四、编辑Apache的扩展配置文件
配置apache的进程管理、默认设置以及虚拟主机。
找到:
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-info.conf
#Include conf/extra/httpd-vhosts.conf
#Include conf/extra/httpd-default.conf
去掉前面的“#”号,取消注释。
注:以上 4
个扩展配置文件中的设置请按照相关原则进行合理配置!修改完成后保存退出。
①.配置Apache进程管理
查看当前httpd的工作模式,可执行 /usr/local/httpd/bin/apachectl -l
进程管理模式共有三种:worker模式、prefork模式、Event模式
配置文件为:/usr/local/httpd/conf/extra/httpd-mpm.conf
将配置文件中下面一段修改为如下,worker工作模式例子与详解:
\
StartServers 2 //启动apache时,首次启动2个进程
MaxClients 150 //最多支持150个并发的http链接
MinSpareThreads 25 //最少有25个线程空闲,否则新增加进程或者线程了
MaxSpareThreads 75 //最多有75个线程空闲,否则就要自动回收多余空闲的线程或者进程
ThreadsPerChild 25 //启动一个进程时,此进程首先启动25个线程
MaxRequestsPerChild 1000
//允许每个进程在它的生命周期内处理的http最大请求1000.。0为没有限制。(不建议设为0,可能内存溢出)
\</IfModule>
以下是例子配置
\
ServerLimit 50 //最多可以启动50个进程
ThreadLimit 1000 //每个进程最多可以启动1000个线程
StartServers 8
MaxClients 5000
MinSpareThreads 750
MaxSpareThreads 2500
ThreadsPerChild 1000
MaxRequestsPerChild 20000
\</IfModule>
指令说明(根据每台机的配置,设置对应的参数):
StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。
MaxClients:允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候队列。默认值是400,16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加ServerLimit的值。
ThreadsPerChild:每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。
MinSpareThreads:最小空闲线程数,默认值是75。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。
MaxSpareThreads:设置最大空闲线程数。默认值是250。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空
闲线程数太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的
值:worker要求其大于等于MinSpareThreads加上ThreadsPerChild的和。
MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为0,子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
注意对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
先计算每一个httpd请求大概占用多少内存,除去系统和其他程序占用的内存后,估计每秒请求数有多少,就可以计算出来了
②.配置Apache虚拟主机
配置文件为:/usr/local/httpd/conf/extra/httpd-vhosts.conf
将配置文件中下面一段修改为相应虚拟主机域名和相应目录,下例为改为www.test.org:
\
ServerAdmin webmaster\@dummy-host2.localhost
DocumentRoot “/home/www/test/“
ServerName www.test.org
\<Directory “/home/www/test/“>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
\</Directory>
\</VirtualHost>
新建目录(改为上述的虚拟主机目录)
mkdir -p /home/www/test/
重启apache服务service httpd restart
如果想要在centos本机测试,用虚拟主机域名方式浏览,请编辑vi /etc/hosts文件加上:
127.0.0.1 www.test.org
③配置Apache服务器默认设置
vi /usr/local/httpd/conf/extra/httpd-default.conf
# 联机超过 60 秒失败就重试
Timeout 60
# 开启 KeepAlive
KeepAlive Off
# 设定同一时间可容许的 KeppAlive 量
MaxKeepAliveRequests 5000
# KeepAlive 多久要自动 Timeout 掉
KeepAliveTimeout 3
# 关掉那费时的 DNS 查寻
HostnameLookups Off
总结一下:
在内存非常充足的服务器上,不管是否关闭 KeepAlive
功能,服务器性能不会有明显变化;
如果服务器内存较少,或者服务器有非常大量的文件系统访问时,或者主要处理动态网页服务,关闭
KeepAlive
后可以节省很多内存,而节省出来的内存用于文件系统Cache,可以提高文件系统访问的性能,并且系统会更加稳定。
补充:
关于是否应该关闭 KeepAlive
选项,我觉得可以基于下面的一个公式来判断。 在理想的网络连接状况下,系统的
Apache 进程数和内存使用可以用如下公式表达:
HttpdProcessNumber = KeepAliveTimeout * TotalRequestPerSecond /
Average(KeepAliveRequests)
HttpdUsedMemory = HttpdProcessNumber * MemoryPerHttpdProcess
换成中文:
总Apache进程数 = KeepAliveTimeout * 每秒种HTTP请求数 / 平均KeepAlive请求
Apache占用内存 = 总Apache进程数 * 平均每进程占用内存数 需要特别说明的是:
[平均KeepAlive请求] 数,是指每个用户连接上服务器后,持续发出的 HTTP
请求数。当 KeepAliveTimeout 等 0 或者 KeepAlive 关闭时,KeepAliveTimeout
不参与乘的运算从上面的公式看,如果 [每秒用户请求] 多,[KeepAliveTimeout]
的值大,[平均KeepAlive请求] 的值小,都会造成 [Apache进程数] 多和 [内存]
多,但是当 [平均KeepAlive请求] 的值越大时,[Apache进程数] 和 [内存]
都是趋向于减少的。
基于上面的公式,我们就可以推算出当 平均KeepAlive请求 \<= KeepAliveTimeout
时,关闭 KeepAlive 选项是划算的,否则就可以考虑打开。
Timeout:设置服务器在断定请求失败前等待的秒数。默认值300。
KeepAlive:设置是否启用HTTP持久链接,On 代表打开,Off
代表关闭。如果用于同一页面包含大量静态文件的应用,设置为On,以提高性能;如果用于主要为动态页面的应用,
设置为Off,以节约内存资源;如果服务器前跑有squid或者其它七层设备,设置为On。
MaxKeepAliveRequests:限制当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为”0”,将不限制请求的数目。笔者建议将此值设为100-500之间的一个值,以确保最优
的服务器性能。
KeepAliveTimeout:设置持久链接中服务器在两次请求之间等待的秒数。对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户
端保持连接的进程就越多。
UseCanonicalName:配置服务器如何确定它自己的域名,可选值为On | Off |
DNS。DNS用于为大量基于IP的虚拟主机支持那些古董级的不提供”Host:”头的浏览器使用。笔者建议
设置为Off。
AccessFileName:设置分布式配置文件的名字,默认为.htaccess。如果为某个目录启用了分布式配置文件功能,那么在向客户端返回其中的文档时,服务器将在这个文档所在的各
级目录中查找此配置文件,因此会带来性能问题,笔者建议关闭分布式配置文件功能。
ServerTokens:控制服务器回应给客户端的”Server:”应答头是否包含关于服务器操作系统类型和编译进的模块描述信息,同时还控制着
ServerSignature指令的显示内容。可选值
为Full | OS | Minor | Minimal | Major |
Prod。笔者建议设置为显示最少信息的Prod。
ServerSignature:配置服务器生成页面的页脚,可选值为On | Off |
EMail。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会额外
创建一个指向 ServerAdmin的”mailto:”部分。建议使用默认值Off。
HostnameLookups:设置是否启用对客户端IP的DNS查找,可选值为On | Off |
Double。DNS查询会造成明显的时间消耗,建议设置为Off。
五、安装配置apache模块
注:apache的LoadModule是按顺序加载的,mod_cband(限速)要在mod_proxy(代理)之前。下面部分模块在编译安装apache时就已安装了。
①配置支持中文URL路径
起作用的模块为mod_encoding
1、先打补丁
yum install patch -y
# wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
# wget
http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616
新版本mod_encoding.c 覆盖
# cp mod_encoding.c.apache2.20040616 mod_encoding-20021209/mod_encoding.c
这里必须要打一个apache 2.2的补丁。否则make也会出apxs rc=65536 之类的错误。
# wget
http://www.aconus.com/\~oyaji/faq/mod_encoding.c-apache2.2-20060520.patch
# cd mod_encoding-20021209
# patch -p0 \< mod_encoding.c-apache2.2-20060520.patch
2、安装iconv-hook库
# cd mod_encoding-20021209/lib
# ./configure –prefix=/usr
# make
# make install
# ldconfig
3、生成 mod_encoding的so文件
./configure –with-apxs=/usr/local/httpd/bin/apxs –with-iconv-hook=/usr/include
make
gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
cp mod_encoding.so /usr/local/httpd/modules
4、编辑 apache 2.2 配置
vi /usr/local/httpd/conf/httpd.conf
加入以下行
LoadModule encoding_module modules/mod_encoding.so
\
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding “(Microsoft .* DAV \$)” UTF-8 GBK GB2312
AddClientEncoding “Microsoft .* DAV” UTF-8 GBK GB2312
AddClientEncoding “Microsoft-WebDAV*“ UTF-8 GBK GB2312
\</IfModule>
②配置防DDOS攻击模块
下载mod_evasive
http://www.nuclearelephant.com/projects/mod_evasive
#tar zxvf mod_evasive_1.10.1.tar.gz
#cd mod_evasive
#/usr/local/httpd/bin/apxs -i -a -c mod_evasive20.c
打开 httpd.conf文件,查看是否有以下行,如没有则加上去
LoadModule evasive20_module modules/mod_evasive20.so
并加入
\
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
\</IfModule>
③配置限制带宽
模块名为mod-cband
#tar xzvf mod-cband-0.9.6.1.tgz
#cd mod-cband-0.9.6.1
./configure –with-apxs=/usr/local/httpd/bin/apxs //指定一下
apxs的路径,否则可能会出错
#make
#make install
安装成功后提示:
chmod 755 /usr/local/httpd/modules/mod_cband.so
打开/usr/local/httpd/conf/httpd.conf
LoadModule cband_module modules/mod_cband.so已经添加。
安装模块到此完毕,以下是配置
然后在虚拟主机配置文件中,按以下方法修改:
\
ServerName www.example.com
ServerAdmin webmaster\@example.com
DocumentRoot /home/www/html/example_com
CBandLimit 100M //限制虚拟主机总访问带宽为100Mb。
CBandSpeed 1024 10 30
//CBandSpeed限定总的最大链接速度为1024kb,最多并发处理10个请求每秒和30个链接每秒
CBandRemoteSpeed 20kb/s 5 3 //
CBandRemoteSpeed限定一个用户最多能有20kb的链接速度,最多并发5个请求每秒和3个链接每秒
CBandPeriod 4W //设定多久对所记录的全局访问带宽进行重设(清零)。4W=4 weeks
4周(一个月)
\<Location /cband-status>
SetHandler cband-status
\</Location>
#
开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status进行直观的观测。(全局监测)
\<Location /cband-status-me>
SetHandler cband-status-me
\</Location>
#
开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status-me进行直观的观测。(单一监测)
\</VirtualHost>
④mod_proxy代理服务
apache提供了mod_proxy模块用于提供代理服务,能够支持的包括正向代理、反向代理、透明代理、缓存、负载均衡,HTTP代理、FTP代理、SSL代理等若干强大的功能。
通常我们使用的比较多的,是正向代理。也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网页。
如果apache没有安装proxy模块,可以不用重新编译,就能添加模块。
cd /home/soft/httpd-2.2.31/modules/proxy
/usr/local/httpd/bin/apxs -c -i mod_proxy.c proxy_util.c (ps
必须2个c一起编译,不然会报错) /usr/local/httpd/bin/apxs -c -i mod_proxy_http.c
proxy_util.c
vi /usr/local/httpd/conf/httpd.conf
添加以下行
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
这里只要求安装模块,如果没有设置代理的要求,先不用配置。
配置正向代理:
首先在apache上启用mod_proxy模块,需要注意的是,如果在apache-2.2上,则还需要加载名为mod_proxy_http的模块。因为2.2系列把代理功能都拆分成N个小模块了。打开apache的conf(虚拟主机方式或全局配置),加入如下几行:(全局配置)
ProxyRequests On
ProxyVia On
\
Order deny,allow
Deny from all
Allow from internal.example.com
\</Proxy>
保存退出,重启apache服务:service httpd restart
现在即可在浏览器的网络连接属性框中,填写上your_apache_server_ip的ip地址,端口是80,开始用代理了。
使用apache提供的代理,也可以加身份验证,或者设置ACL来限制客户端来源等。这些配置就和普通的apache站点配置一样。
注:使用正向代理时严格控制访问权限(使用ProxyRequests指令)是非常重要的。否则你的代理会被客户端利用来访问其它服务器并且隐藏客户端的真实身份。这不仅对您的网络有威胁,对整个因特网来说也同样如此。当使用反向代理(在”ProxyRequests
Off”条件下使用ProxyPass指令)的时候访问控制要相对宽松,因为客户端只能连接你配置的特定主机。
配置反向代理:
如从某地访问google太慢,但是机房服务器上很快,则可在服务器上设置反向代理连接到google,也就是把google映射到服务器上来访问。然后新建一个网站,即创建一个标准的配置段。这里我们将站点/google目录设置为google的反向代理。在这段里边,加入下边一内容:
ProxyRequests Off
\
Order deny,allow
Allow from all
\</Proxy>
ProxyPass /google http://www.google.com/
//前面可以直接访问(80)后面代理的(82)
ProxyPassReverse /google http://www.google.com/
保存退出,重启apache。ProxyPass与ProxyPassReverse的内容总是一样,ProxyPassReverse是重定向~~~~
现在即可使用浏览器来访问我的网站的/google目录。当打开这个目录的时候,会发现页面是google。点击google的下级页面,都可以正常的打开访问,而此时浏览器中的代理服务器并未设置任何内容——这就是反向代理。
⑤反向加速/代理加速模块
模块名为mod_extract_forwarded
tar zxvf mod_extract_forwarded2-0.1.tar.gz
cd extract_forwarded
/usr/local/httpd/bin/apxs -c -i -a mod_extract_forwarded2.c
这个全自动安装,会在apache的httpd.conf自动添加
LoadModule extract_forwarded_module modules/mod_extract_forwarded2.c
默认这时还不工作,还需要配置 (其中 127.0.0.1 为代理加速配置)
MEForder refuse,accept
MEFrefuse all
MEFaccept 127.0.0.1
#MEFaddenv on
#default on
#MEFdebug on
#default off
以下为测试
MEFdebug 设为 on 的话
cd /var/log/httpd/
tail error_log
可以看到很多具体信息
MEF: phase:post read request, initial substituted 1.1.1.1 for 127.0.0.1,
http://2.2.2.2/file.html
MEF: phase:URI translate, already done, NFA required, http://2.2.2.2/file.html
MEF: phase:access check, already done, NFA required, http://2.2.2.2/file.html
MEF: phase:cleanup initial, undo spoof substituted 127.0.0.1 for 1.1.1.1
1.1.1.1 为远端客户机
2.2.2.2 为服务器 用ip连接 当然域名也可以
如果不通过代理加速直接连的话
MEF: phase:post read request, no FORWARDED-FOR header, /favicon.ico
MEF: phase:URI translate, no FORWARDED-FOR header, /favicon.ico
MEF: phase:access check, no FORWARDED-FOR header, /favicon.ico
⑥启用mod_expires模块
mod_expires可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。
在使用之前,首先要确认一下”mod_expires”模组是否有启用。编辑Apache的”httpd.conf”配置文件。搜索找到这行,取消注释:
#LoadModule expires_module modules/mod_expires.so
上述所有模块安装配置完毕后重启apache
⑦安装设置浏览器缓存模块
mod_headers模块:该模块用来设置浏览器缓存文件,如果安装apache时没有安装mod_headers模块,使用以下apache安装加载
1、进入httpd源码包下的目录modules/metadata。
cd /home/soft/httpd-2.2.20/modules/metadata
2、执行安装命令。
/usr/local/httpd/bin/apxs -i -a -c mod_headers.c
如果要启用在httpd.conf 中设置:
LoadModule headers_module modules/mod_headers.so
\
Header add MS-Author-Via “DAV”
\</IfModule>
六. 安装Resin
a) 下载Resin源码包resin-pro-3.1.12.tar.gz 放到目录/home/soft
b) 解压resin源码包 tar -zxvf resin-pro-3.1.12.tar.gz
c)进入文件夹
cd /home/soft/resin-pro-3.1.12
d) 编译源码
./configure –prefix=/usr/local/resin –with-apxs=/usr/local/httpd/bin/apxs
–with-java-home=/usr/java/jdk1.6.0_29
make && make install
e)安装许可证(覆盖,最好先删除原文件)
cp /home/soft/license.jar /usr/local/resin/lib/license.jar
七. apache与resin的整合配置
a) 修改apache配置文件
进入apache目录
/usr/local/httpd/conf/目录下,查看httpd.conf文件如果发现以下内容,则表示整合成功了一半。
LoadModule caucho_module /usr/local/httpd/modules/mod_caucho.so
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
上述6800是端口。
找到以下:这一行后增加index.jsp 这样可以支持JSP文件
\
DirectoryIndex index.html
\</IfModule>
将该行改为
\
DirectoryIndex index.html index.htm index.jsp
\</IfModule>
找到#ServerName www.example.com:80在下面添加一行
ServerName localhost:80
修改其工程目录:
DocumentRoot “/usr/local/resin/webapps/ROOT”
以下行修改路径及控制目录和文件的访问授权:如下设为允许所有
\<Directory “/usr/local/resin/webapps/ROOT”>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
\</Directory>
httpd.conf文件最后加上
\<Location /caucho-status>
SetHandler caucho-status
\</Location>
保存退出,Windows下访问“ip地址/caucho-status”查看是否整合成功。
b)修改完apache之后,同时修改resin的配置文件/usr/local/resin/conf/resin.conf
将以下部分中的root-directory改为你的工程目录与apache的工程目录相同
\<host id=”” root-directory=”.”>
\<web-app id=”/“ root-directory=”webapps/ROOT”/>
修改端口号(默认8080)、网站路径。(默认网站路径在第300行)
查找utf-8在注释下添加以下行:
\<character-encoding>utf-8\</character-encoding>
修改JVM内存,
则只需修改resin.conf,如下配置即可(根据每台机情况配置相应内存大小),例:生产环境设定
\<jvm-arg>-Xdebug\</jvm-arg>
\<jvm-arg>-Xmx2048M\</jvm-arg>
\<jvm-arg>-Xms2048M\</jvm-arg>
\<jvm-arg>-Xmn256M\</jvm-arg>
\<jvm-arg>-XX:PermSize=128M\</jvm-arg>
\<jvm-arg>-XX:MaxPermSize=256M\</jvm-arg>
\<jvm-arg>-Xss256K\</jvm-arg>
\<jvm-arg>-XX:SurvivorRatio=1\</jvm-arg>
\<jvm-arg>-XX:+CMSParallelRemarkEnabled\</jvm-arg>
\<jvm-arg>-XX:+UseCMSCompactAtFullCollection\</jvm-arg>
\<jvm-arg>-XX:CMSFullGCsBeforeCompaction=0\</jvm-arg>
\<jvm-arg>-XX:ParallelGCThreads=2\</jvm-arg>
\<jvm-arg>-XX:LargePageSizeInBytes=128M\</jvm-arg>
\<jvm-arg>-XX:+UseFastAccessorMethods\</jvm-arg>
\<jvm-arg>-XX:+UseCMSInitiatingOccupancyOnly\</jvm-arg>
\<jvm-arg>-XX:CMSInitiatingOccupancyFraction=80\</jvm-arg>
\<jvm-arg>-XX:SoftRefLRUPolicyMSPerMB=0\</jvm-arg>
\<jvm-arg>-XX:+PrintClassHistogram\</jvm-arg>
\<jvm-arg>-XX:+PrintGCDetails\</jvm-arg>
\<jvm-arg>-XX:+PrintGCTimeStamps\</jvm-arg>
\<jvm-arg>-XX:+PrintHeapAtGC\</jvm-arg>
\<jvm-arg>-XX:-UseGCOverheadLimit\</jvm-arg>
\<jvm-arg>-XX:+UseConcMarkSweepGC\</jvm-arg>
\<jvm-arg>-Xloggc:log/gc.log\</jvm-arg>
说明:
(1)J-server -Xms200m -Xmx1024m 其中,-Xms200m
表示启动时,初时内存大小,-Xmx1024m
最大内存占用大小。(注:最大内存设定不能超过物理最大内存的70%)
查看内存请使用下句:
free -m
(2)-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:内存的永久保存区域的大小
(3)-Djava.awt.headless=true 解决在linux/unix验证码图片不能显示的问题。
八.配置完成,测试
(1)将测试文件(例如index.jsp)放到/usr/local/resin/webapps/ROOT目录下。
(2)进入resin目录/usr/local/resin/bin目录下执行./httpd.sh
restart命令重启resin服务。
(3)centos本地机访问http://127.0.0.1:8080/index.jsp
WINDOWS下测试; http://外网IP:8080/index.jsp
可访问到index.jsp页面,说明resin服务配置正常。
(4)进入apache目录/usr/local/httpd/bin目录下执行./apachectl
restart命令重启apache服务。
(5)同样访问http://127.0.0.1/index.jsp
WINDOWS下测试; http://外网IP/index.jsp
此时的端口号为apache的端口号80,发现apache也可以解析jsp文件了,整合成功。
九.添加到开机启动
(1)设置resin开机启动
cp /usr/local/resin/bin/httpd.sh /etc/init.d/resin
chmod +x /etc/init.d/resin //添加Resin执行权限
修改脚本 vi /etc/init.d/resin,在头部之下,添加一行
#!/bin/sh
#
此处添加以下行
# chkconfig: 345 85 15
添加以下HOME路径:
JAVA_HOME=/usr/java/jdk1.6.0_29
RESIN_HOME=/usr/local/resin
在/etc/profile下增加以下行
RESIN_HOME=/usr/local/resin
export RESIN_HOME
保存退出。刷新一下:source /etc/profile
chkconfig –add resin //添加Resin为系统服务
chkconfig resin on //设置Resin开机自动启动
chkconfig //检查是否开启
(2)设置apache开机启动
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
编辑,在头部之下,添加一行
#!/bin/sh
#
此处添加以下行,保存退出。
# chkconfig: 345 85 15
chkconfig –add httpd //添加开机启动
chkconfig httpd on
chkconfig //检查是否开启
十.其他命令说明补充
补充:删除/usr/local/resin/webapps/resin-doc.war文件,防止漏洞被利用。
临时启动resin命令/etc/init.d/resin start 或service resin start
查看状态service resin status
注:”service 软件名 start/stop”命令,是搜索/etc/init.d/目录下的脚本
查看服务是否开启: chkconfig
查看端口是否开启:netstat -ntl
(netstat 显示网络相关信息:网络连接,路由表,接口状态,masquerade
连接,多播成员等)
安装lrzsz软件:搭配SecureCRT使用的上传下载软件
yum install lrzsz -y
rz上传sz下载,默认传输目录在SecureCRT会话里xmodem里设置
同步时间ntp
先安装yum install ntp -y
ntpdate 0.asia.pool.ntp.org