Apache & Tomcat 服务部署及配置
Apache & Tomcat 服务部署及配置
第1节 环境搭建
1.1 Linux服务器环境搭建
1.1.1 服务器环境
示例服务器环境,apache,tomcat的版本:
服务器版本:uname –a 输出版本信息如下
Linux linux6.3 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012
x86_64 x86_64 x86_64 GNU/Linux
APACHE版本:apachectl –version输出版本信息如下
Server version: Apache/2.2.15 (Unix)
Server built: Feb 7 2012 09:50:11
Tomcat版本:/usr/local/tomcat1/bin/version.sh
Server version: Apache Tomcat/7.0.54
Server built: Jul 2 2013 08:57:41
Server number: 7.0.54.0
OS Name: Linux
OS Version: 2.6.32-279.el6.x86_64
Architecture: amd64
JVM Version: 1.6.0_24-b24
JVM Vendor: Sun Microsystems Inc.
PHP版本:
[aaa@qq.com conf]#php -version
PHP 5.3.3 (cli) (built: May 3 2012 17:33:17)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
1.1.2 JDK安装
Tomcat依赖JDK,若已安装跳过。未安装,可直接使用Linux自带的rpm包安装,yes直到完成。
配置环境变量
<1> vim /etc/profile
<2> 在最后加入以下几行:
export JAVA_HOME=/usr/java/jdk1.x.x_xx
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:
$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
<3> source /etc/profile 执行后生效
1.1.3 Apache-Tomcat环境安装
1.解压Tomcat
tar zxvf apache-tomcat-7.0.42.tar.gz
2,安装pcre
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure --prefix=/usr/hello/pcre
make
make install
3,安装apr
tar zxvf apr-1.5.1.tar.gz
cd zxvf apr-1.5.1
./configure --prefix=/usr/hello/apr
make
make install
4,安装apr-util
tar zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/hello/apr-util --with-apr=/usr/hello/apr
make
make install
5,安装apache
tar zxvf httpd-2.4.9.tar.gz
cd httpd-2.4.9
./configure --prefix=/usr/hello/apache --enable-so
--with-apr=/usr/hello/apr
--with-apr-util=/usr/hello/apr-util
--with-pcre=/usr/hello/pcre
make
make install
1.2 Windows环境搭建
1.2.1 服务器环境
示例服务器环境
服务器:Windows2003
Apache:2.2.15
Tomcat:7.0.42
1.2.2 JDK安装
以jdk-7u40-windows-i586.exe安装为例: 点击->下一步->下一步直到完成。 安装完成的目录为:
C:\Program Files\Java\jdk1.7.0_40
C:\Program Files (x86)\Java\jdk1.7.0_40 (x64)
环境变量配置:
右键 我的电脑->属性->高级->环境变量(Win2003,Win7略有不同),
在环境变量窗口选择系统环境变量:(以Win32为例)
新建 变量名 JAVA_HOME,变量值为C:\Program Files\Java\jdk1.7.0_40
1.2.3 Apache-Tomcat环境安装
Apache安装:
这里以httpd-2.2.25-win32-x86-no_ssl.msi为例 点击->安装->Next->… 安装完成
默认安装完成根目录为:
C:\Program Files\Apache Software Foundation\Apache2.2 C:\Program Files (x86)\Apache Software Foundation\Apache2.2 安装完成后apache的目录结构如下:
Tomcat环境安装:
选择一个目录比如D:\把apache-tomcat-7.0.42-windows-x86.zip解压: 解压后apache-tomcat-7.0.42的目录结构如下:
1.3 服务环境验证
1.Apache验证
- 启动apache (进入apache根目录下的bin文件夹)
- Linux:apachectl –k start
- Windows:点击ApacheMonitor.exe->start
- 从浏览器访问 http://127.0.0.1:80,能正常访问说明Apache的环境是Ok的。
2.Tomcat验证
- 启动Tomcat(进入tomcat根目录的bin文件夹)
- Linux: ./startup.sh
- Windows: 点击 startup.bat
- 从浏览器访问 http://127.0.0.1:8080,正常访问则说明Tomcat环境是Ok的。
第2节 Apache-Tomcat环境配置
2.1 Apache配置
$APACHE_HOME 代表APACHE根目录
2.1.1 conf/httpd.conf配置
通常此配置文件可以不修改, 开启ssl和虚拟主机需要去掉注释。
Listen 80 监听80端口,如果本机安装了IIS或其他占用80端口的软件,可修改这里;
否则apache无法启动
Include conf/extra/httpd-vhosts.conf 去掉#,使配置生效,加载虚拟主机配置
Include conf/extra/httpd-ssl.conf 去掉#,加载ssl配置
2.1.2 conf/extra/httpd-vhost.conf配置
Mod_Jk均衡配置:(去掉默认安装生成的VirtualHost配置)
加载mod_jk
# The Conf of mod_jk
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "conf/workers.properties"
#urimap.properties文件中说明了哪些请求会转交给Tomcat服务器
#JkMountFile conf/urimap.properties
JkLogFile "logs/mod_jk2.log"
JkLogLevel info
配置虚拟主机
<VirtualHost *:80>
# ServerName www.test.com
ErrorLog "logs/mywebsite.log"
CustomLog "logs/mywebsite.log" common
JkMount /hello/* loadbalancer # 转发规则配置,根据实际url配置
</VirtualHost>
2.1.3 conf/workers.properties配置
主要配置tomcat负载均衡规则:实例中表示对Tomcat0配置apache sticky会话的负载均衡。sticky会话会保证会话状态。
worker.list=loadbalancer
#Tomcat0
worker.Tomcat0.port=8009
worker.Tomcat0.host=localhost
worker.Tomcat0.type=ajp13
worker.Tomcat0.lbfactor=1
//可添加多个Tomcat
...
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=Tomcat0 //可添加多个tomcat
worker.loadbalancer.sticky_session = 1
worker.loadbalancer.sticky_session_force=true
//均衡状态监视
worker.list=jk-watch
worker.jk-watch.type=status
worker.jk-watch.read_only=true
worker.jk-watch.mount=/jk
其中Tomcat0要和对应Tomcat的server.xml中的<Engine>节点的jvmRoute配置相对应。
2.1.4 conf/extra/httpd-ssl.conf
SSL配置使得服务器支持https访问,增强服务器的安全性。
- 获取服务器证书和key(假设为server.crt,server.key), 放到$APACHE_HOME/conf下;
- 配置ssl.conf,将该配置文件放入$APACHE_HOME/conf/extra下;
- ssl.conf的主要配置:
(1) 加载mod_ssl模块
LoadModule ssl_module modules/mod_ssl.so
#支持证书类型
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLCertificateFile conf/server.crt 证书文件配置
SSLCertificateKeyFile conf/server.key 私钥配置
虚拟主机配置
<VirtualHost 192.168.2.209:443> 虚拟主机端口 443
ErrorLog logs/tq_ssl_error_log ssl的错误日志
TransferLog logs/tq_ssl_access_log ssl的访问日志
LogLevel warn 日志级别
SSLEngine on 开启SSLEngine
JkMount /** loadbalancer 转发规则
</VirtualHost>
2.2 Tomcat配置
2.2.1 conf/server.xml配置
为Engine增加jvmRoute配置
<Engine name="Catalina" defaultHost="localhost" jvmRoute="Tomcat0">
2.3 Apache-Tomcat性能优化配置
Apache常用性能优化配置(Httpd.conf):
<IfModule prefork.c>
StartServers 200 服务器启动时建立的线程数
MinSpareServers 100 空闲子进程的最小数量
MaxSpareServers 200 空闲子进程的最大数量
ServerLimit 800 允许同时伺服的最大接入请求数量
MaxClients 800 Apache允许创建的最大进程数
MaxRequestsPerChild 4000 每个子进程在其生存期内允许伺服的最大请求数量
</IfModule>
Tomcat性能优化配置(Server.xml):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="10000"
maxThreads="500"
acceptCount="500"
maxSpareThreads="500"
minSpareThreads="400"
minProcessors="200"
redirectPort="8443" URIEncoding="utf-8" />
第3节 常见错误解决方案
问题1:80端口被占用,apache无法正常启动?
修改$APACHE_HOME/conf中httpd.conf文件,修改Listen 80的端口号为其他端口,
同时注意修改virtualhost的端口号;或者修改已安装程序监听端口。
问题2:访问到服务器的文件列表,如何关闭?
修改$APACHE_HOME/conf中httpd.conf
默认文件访问配置如下 :
<Directory "/var/www/html">
Options Indexes FollowSymLinks
......
</Directory>
修改为:
Options -Indexes FollowSymLinks
问题3:如何在一个机器上部署多个Tomcat?
一个服务器上多个tomcat的部署只要保证以下端口不同即可
(在$TOMCAT_HOME/conf/server.xml中修改配置):
<Server port="8005" shutdown="SHUTDOWN"> tomcat 关闭的端口
<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443"
URIEncoding="utf-8" /> tomcat 的http协议端口
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="utf-8"/> tomcat ajp协议转发端口
问题4:Tomcat编码配置?
1,JVM编码配置
$TOMCAT_HOME/bin/ 目录下面 catalina.sh修改JAVA_OPTS的配置,并增加
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=GBK
-Duser.language=zh_CN //编码配置
-server -Xms1024m -Xmx4096m //JVM优化配置
-XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
2,$TOMCAT_HOME/conf/server.xml中配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="10000"
maxThreads="500"
acceptCount="500"
maxSpareThreads="500"
minSpareThreads="400"
minProcessors="200"
redirectPort="8443" URIEncoding="utf-8" />
Http协议UriEncode编码设置
<Connector port="8009" protocol="AJP/1.3"
connectionTimeout="10000"
redirectPort="8443" URIEncoding="utf-8"/>
AJP协议UriEncode编码设置
问题5:Http请求常见错误码含义?如何处理?
HttpStatus 404 请求资源找不到,通常是访问的url错误,检查url
HttpStatus 500 服务器繁忙或崩溃,检查服务器是否崩溃和TimeWait的线程数量;
若崩溃则表明代码bug,否则需要优化服务器或者升级服务器
HttpStatus 503 服务器暂时不可用,转发的后台服务器关闭或崩溃,或者转发的路径无效;
检查apache转发配置和tomcat的状态,Tomcat崩溃可能是程序问题;如果转发路径不存在,
则需要修改配置
问题6:Apache强制https访问?
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
上一篇: 使用Docker搭建LAMP环境,上线wordpress
下一篇: 【webrtc】web服务(8)