Apache & Tomcat 服务部署及配置

Apache & Tomcat 服务部署及配置

  • 第1节 环境搭建
    • 1.1 Linux服务器环境搭建
      • 1.1.1 服务器环境
      • 1.1.2 JDK安装
      • 1.1.3 Apache-Tomcat环境安装
    • 1.2 Windows环境搭建
      • 1.2.1 服务器环境
      • 1.2.2 JDK安装
      • 1.2.3 Apache-Tomcat环境安装
    • 1.3 服务环境验证
  • 第2节 Apache-Tomcat环境配置
    • 2.1 Apache配置
      • 2.1.1 conf/httpd.conf配置
      • 2.1.2 conf/extra/httpd-vhost.conf配置
      • 2.1.3 conf/workers.properties配置
      • 2.1.4 conf/extra/httpd-ssl.conf
    • 2.2 Tomcat配置
      • 2.2.1 conf/server.xml配置
    • 2.3 Apache-Tomcat性能优化配置
  • 第3节 常见错误解决方案

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

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

配置虚拟主机


   # ServerName www.test.com
    ErrorLog "logs/mywebsite.log"
    CustomLog "logs/mywebsite.log" common
    JkMount /hello/*  loadbalancer      # 转发规则配置,根据实际url配置

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中的节点的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      私钥配置

虚拟主机配置
     虚拟主机端口 443
ErrorLog logs/tq_ssl_error_log      ssl的错误日志
TransferLog logs/tq_ssl_access_log      ssl的访问日志
LogLevel warn                               日志级别
SSLEngine on                            开启SSLEngine
JkMount  /**            loadbalancer        转发规则

2.2 Tomcat配置

2.2.1 conf/server.xml配置

为Engine增加jvmRoute配置
 

2.3 Apache-Tomcat性能优化配置

Apache常用性能优化配置(Httpd.conf):


StartServers       200      服务器启动时建立的线程数
MinSpareServers    100      空闲子进程的最小数量
MaxSpareServers   200       空闲子进程的最大数量
ServerLimit      800            允许同时伺服的最大接入请求数量 
MaxClients       800                Apache允许创建的最大进程数
MaxRequestsPerChild  4000       每个子进程在其生存期内允许伺服的最大请求数量

Tomcat性能优化配置(Server.xml):


第3节 常见错误解决方案

问题1:80端口被占用,apache无法正常启动?

修改$APACHE_HOME/conf中httpd.conf文件,修改Listen 80的端口号为其他端口,
同时注意修改virtualhost的端口号;或者修改已安装程序监听端口。

问题2:访问到服务器的文件列表,如何关闭?

修改$APACHE_HOME/conf中httpd.conf

默认文件访问配置如下 :

Options Indexes FollowSymLinks
......

修改为:
Options -Indexes FollowSymLinks

问题3:如何在一个机器上部署多个Tomcat?

一个服务器上多个tomcat的部署只要保证以下端口不同即可
(在$TOMCAT_HOME/conf/server.xml中修改配置):
    tomcat 关闭的端口
  tomcat 的http协议端口
  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中配置:

Http协议UriEncode编码设置


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服务)