Apache 与 Tomcat 配置
Apache 配置(Linux)
-
安装
sudo apt-get install apache2
安装结束后, apache2 的各个组成部分被安装在5个地方
- 配置文件的位置:/etc/apache2
- lib文件的位置:/usr/lib
- 启动文件的位置:/etc/init.d/apache2
- 网页存放位置:/var/www
- 软件所在位置:/usr/share/apache2
产生的启动和停止文件是:/etc/init.d/apache2
启动:/etc/init.d/apache2 start 或者 apache2ctl start
关闭:/etc/init.d/apache2 stop 或者 apache2ctl stop
重启:/etc/init.d/apache2 restart 或者 apache2ctl restart -
概念
ServerAdmin: 网站的管理员的邮箱
DocumentRoot: 虚拟主机的主目录,也就是访问这个虚拟主机所打开的那个目录,这个目录你可以自己去指定,要注意的是,你需要先去创建这个目录,然后再在这里去指定这个目录的位置。
ServerName: 主机名,比如之前我们虚拟的那个主机名 hello.com
ServerAlias: 主机的别名,你可以指定一个其它的主机名,访问它的时候也会打开这个虚拟主机的目录里的东西。
ErrorLog: 错误的日志,也就是发生错误的时候,会把错误记录到哪个文件里。
CustomLog: 虚拟主机访问的日志。 -
配置
apache2.conf 是主配置文件,httpd.conf 用户配置文件
首先在修改
/etc/apache2/sites-available/default
, 将端口改为 8081(自定义), 当然如果默认的 80 端口没有被占用,也可以不修改。
然后修改/etc/apache2/ports.conf
NameVirtualHost *:8081 Listen 8081
然后在
/etc/apache2/httpd.conf
中添加Servername 127.0.0.1:8081
运行
sudo apache2ctl start
打开浏览器输入网址访问
http://localhost:8081
个人见解
在 /etc/apache2 中存在两个文件夹 sites-available 和 sites-enabled.
sites-available 是所有的供使用的配置(包括自己的配置也要放在里面),而要使某个配置,就要将它放在sites-enabled,我们可以做个软链接,使用 ln -s
在配置文件里面使用的端口,还要在 ports.conf 中配置下, 例如
NameVirtualHost *:8081
Listen 8081
新建自己的网站
-
创建一个存放网站的文件夹
要链接网页首先需要在/var/www 中创建自己的网页,此处(/var/www)已经有一张默认的网页index.html。也就是apache2启动后默认的那张It works。
mkdir wsclient
cp /usr/my.html . -
配置文件
打开apache配置文件夹,我们会发现在这下面有两个名为 sites-available和sites-enabled的文件夹。
首先在 sites-available 中 copy 一份默认的 default,并命名为 wsclient,修改内容如下ServerAdmin webmaster@localhost DocumentRoot /var/www/wsclient Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/"Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 修改的内容有
VirtualHost *:8083
和DocumentRoot /var/www/wsclient
,分别代表端口和网站目录。
接着在 sites-enable 做一个 wsclient 的软链接cd ../sites-enabled ln -s ../sites-abailable/wsclient wsclient
最后,在端口配置文件中配置下端口。
vim ports.conf
增加
NameVirtualHost *:8083 Listen 8083
-
成功
打开浏览器,输入 http://localhost:8083 即可看到咱的网站,欢呼吧。
apache 不支持 java web, 所以要结合 tomcat
Apache是http服务器,我们利用其对Tomcat进行负载均衡
Tomcat 配置 (Linux)
-
下载
去官网将软件包下载下来
-
解压
tar -zxv -f apache-tomcat-7.0.54.tar.gz apache-tomcat-7.0.54
-
移动
sudo mv apache-tomcat-7.0.54 /usr/local/
-
环境变量
vi /etc/profile
在最后面添加
export JAVA_HOME=/usr/lib/jvm/java-7-oracle export JRE_HOME=/usr/lib/jvm/java-7-oracle/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
修改端口
如果默认
8080
端口被占用,就需要修改端口。修改
/etc/tomcat7/server.xml
,修改部分内容如下 -
运行
/usr/local/apache-tomcat-7.0.54/bin/startup.sh
-
停止
/usr/local/apache-tomcat-7.0.54/bin/shutdown.sh
将 apache 与 tomcat 整合(Linux)
使用mod_jk2连接器
下载
登录 http://tomcat.apache.org/connectors-doc/
下载源码。
编译生成 mod_jk
想要编译 mod_jk 需要先安装 apxs2
采用 sudo apt-get install apache 安装apache服务,不会自带apxs(apache extension tool [apache扩展模块的工具,例如$apxs -i -a -c mod_foo.c]),需安装 apache2-dev
sudo apt-get insall apache2-dev
可以找到 apxs2 被安装在 /usr/bin/apxs2 /usr/bin/X11/apxs2 /usr/share/man/man1/apxs2.1.gz
接下来编译 mod_jk
tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
cd jakarta-tomcat-connectors-1.2.15-src/jk/native
./configure --with-apxs=/usr/bin/apxs2
make
make install
## cp ./apache-2.0/mod_jk.so /usr/lib/apache2/modules/
apache 文件配置
该方法使用运行于现有的Apache httpd Web服务器之内的连接器模块(如mod_jk),并经由特定的协议快速地将请求转送至Tomcat。这是将Tomcat连接至Apache httpd的标准方式。
-
修改Apache配置文件httpd.conf
include "/etc/apache2/mod_jk.conf"
-
在httpd.conf 同目录下新建mod_jk.conf文件
#加载mod_jk Module LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so #指定 workers.properties文件路径 JkWorkersFile workers.properties #指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名 JkMount /* controller
-
在httpd.conf同目录下新建 workers.properties文件
本来该配置文件是配置了两台 tomcat 服务器,但是为了简单,将配置文件修改为 1 个 tomcat(不适用的配置进行了注释)。
#这里可以配置任意多个Tomcat,此处配置了2个Tomat服务器. #host和port根据自己实际配置.实例配置的是本机两个tomcat,分别使用不同的端口.避免冲 突 #如果Tomcat不再同一机器上,没必要改端口的。 #server 列表 #worker.list=controller,tomcat1,tomcat2 worker.list=controller,tomcat1 #========tomcat1======== worker.tomcat1.port=8088 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor=1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== #worker.tomcat2.port=9999 #ajp13 端口号,在tomcat下server.xml配置,默认8009 #worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地>址 #worker.tomcat2.type=ajp13i #worker.tomcat2.lbfactor=1 #server的加权比重,值越高,分得的请求越多 #========controller,负载均衡控制器======== worker.controller.type=lb #指定此负载平衡器负责的Tomcat应用节点。 #worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat worker.controller.balanced_workers=tomcat1 #指定分担请求的tomcat #此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,>当某用户的请求第一次分发到哪台 #Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求 会话复制。 worker.controller.sticky_session=false #设为false,则表明需求会话复制。
Tomcat 文件配置
-
修改分发tomcat对应的service.xml文件,保证Apache对应的 workers.properties中的AJP13的connector的port.
-
增加jvmRoute的值,保证同workers.properties里边配置的值一致
-
去掉默认注释掉的集群配置
如果我们的tomcat结点分布在不同的机器上,那么我们的集群至此已经配置完成.去掉多余注释,显示做了修改的部位
说明: 这里的protocol="AJP/1.3",连接以及jvmRoute需要保证同我们在Apache服务器中配置的works.properties一致.修改完后最好将service.xml文件的编码设置为utf-8格式.否则可能tomcat启动会出错.
-
实例中我们的两个tomcat结点在同一台机器上,所以还需要保证protocol="HTTP/1.1"的端口不一致.不然本地的两个tomcat会起冲突
下面为笔者实例中解决同一台机器上多个tomcat服务器之间端口冲突做的修改.
Tomcat--node1
Tomcat-node2
…… …… 说明:这里的protocol="HTTP/1.1"配置的相关端口之间不能冲突,而且也不能同本机其它应用程序占用的端口冲突.否则可能会报错.
失败
在 httpd.conf 中添加以下代码成功
ServerAdmin localhost
DocumentRoot /var/www/
ServerName localhost
DirectoryIndex index.html index.htm index.jsp index.action
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /*WEB-INF controller
JkMount /*.action controller
JkMount /servlet/* controller
JkMount /*.jsp controller
JkMount /*.do controller
JkMount /*.action controller
经测试,在网站配置文件,即在 sites-available 中配置同样生效。
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ServerName localhost
DirectoryIndex index.html index.htm index.jsp index.action
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
#JkMount /*WEB-INF controller
#JkMount /*.action controller
#JkMount /servlet/* controller
##JkMount /*.jsp controller
#JkMount /*.do controller
#JkMount /*.action controller
JkMount /* controller
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
失败后
sudo servicae apache reload
发现端口 time-wait
过一段时间被关闭, 可以换个端口,或者看看 tomcat 中是不是有类似的这样的一句:
查看端口方法
netstat -anp | grep 9087
实例测试
sudo service apache2 start 提示开启
Win 上整合 IIS 与 Tomcat
Win上使用的服务器大多是 IIS, 为了让 IIS 支持 JAVA,需要将 整合 IIS 与 Tomcat。
下载安装 isapi_redirect
下载后,双击安装安装向导安装。默认是安装路径为 C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector
设置IIS
右键 IIS 中的 Default Web Site, 选择
添加虚拟目录
。
别名:jakarta
(一定要一致).
物理路径:C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\bin
(isapi_redirect 安装目录的 bin 目录, 根据自身情况而定)-
选中服务器
在右面面板找到,点击进入
选择添加,设置
ISAPI 或 CGI 路径
:C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\bin\isapi_redirect.dll
(视自身情况而定,这里是指isapi_redirect.dll的路径)描述随意: 可以输入
isapi_redirect.dll
勾选允许执行扩展路径
-
选中
jakarta
在右边面板中找到
右边找到 添加脚本映射
填入下面内容, 其中可执行文件还是之前的 isapi_redirect.dll
文件路径:
修改配置文件
修改 workers.properties.minimal
该文件位于 C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\conf
(视自身而定)
修改内容如下:
# workers.properties.minimal -
#
# This file provides minimal jk configuration properties needed to
# connect to Tomcat.
#
# The workers that jk should create and work with
#
worker.list=wlb,jkstatus
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name
and the type do not have to match.
#
worker.jkstatus.port=9009
worker.jkstatus.host=localhost
worker.jkstatus.type=ajp13
worker.jkstatus.lbfactor=1
#
# Defining a load balancer
#
worker.wlb.type=lb
worker.wlb.balance_workers=jkstatus
修改 uriworkermap.properties
该文件位于 C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\conf
(视自身而定)
修改内容如下:
# uriworkermap.properties - IIS
#
# This file provides sample mappings for example wlb
# worker defined in workermap.properties.minimal
# The general syntax for this file is:
# [URL]=[Worker name]
/admin/*=wlb
/manager/*=wlb
/jsp-examples/*=wlb
/servlets-examples/*=wlb
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
!/servlets-examples/*.jpeg=wlb
#
# Mount jkstatus to /jkmanager
# For production servers you will need to
# secure the access to the /jkmanager url
#
/jkmanager=jkstatus
/try/*=wlb
/*.jsp=wlb
注册表
新建一个文件,后缀名为 .reg
(表示注册表文件),写入以下内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]
"log_file"="C:\\tomcat8\\logs\\isapi.log"
"log_level"="debug"
"worker_file"="C:\\Program Files (x86)\\Apache Software Foundation\\Jakarta Isapi Redirector\\conf\\workers.properties"
"worker_mount_file"="C:\\Program Files (x86)\\Apache Software Foundation\\Jakarta Isapi Redirector\\conf\\uriworkermap.properties"
"tomcat_start"="C:\\tomcat8\\bin\\tomcat.bat start"
"tomcat_stop"="C:\\tomcat8\\bin\\tomcat.bat stop"
"extension_uri"="/jakarta/isapi_redirect.dll"
根据自己的电脑修改上面的文件,保存。双击运行即可设置好注册表。
配置 Tomcat
修改 [Tomcat安装目录]/conf/server.xml
。
-
找到类似下面的一句(引号内的内容可以不一样,一般是被注释的),取消注释,并修改如下
-
找到下面一句
取消注释并修改如下
-
找到下面一句,取消注释
启动服务
分别启动 iis 和 tomcat 服务,保证他们都能单独运行
测试
新建一个 jsp 项目项目,放入 tomcat 的 webapps 目录下,重启 tomcat。
在浏览器中输入 网址,例如 http://localhost/try/index.jsp