欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache & Tomcat 服务部署及配置

程序员文章站 2022-07-15 12:14:33
...

第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的目录结构如下:
Apache & Tomcat 服务部署及配置
Tomcat环境安装:
选择一个目录比如D:\把apache-tomcat-7.0.42-windows-x86.zip解压: 解压后apache-tomcat-7.0.42的目录结构如下:
Apache & Tomcat 服务部署及配置

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访问,增强服务器的安全性。

  1. 获取服务器证书和key(假设为server.crt,server.key), 放到$APACHE_HOME/conf下;
  2. 配置ssl.conf,将该配置文件放入$APACHE_HOME/conf/extra下;
  3. 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]
相关标签: web服务