本文共 4085 字,大约阅读时间需要 13 分钟。
进入 ,找到 Tomcat9
,点击 64-bit Windows zip (pgp, md5, sha1, sha512)
,下载后的文件名为:apache-tomcat-9.0.2-windows-x64.zip
,将文件夹解压本地目录:C:\Users\SY\Desktop\GIT\Software\apache
双击 bin/startup.bat
文件,在浏览器输入 http://localhost:8080
就可以访问 Tomcat
网站。
我们点击 Server Status
时,弹出登录对话框,需要输入用户名和密码,随便输入后,进入一个页面
403 Access DeniedYou are not authorized to view this page.If you have not changed any configuration files, please examine the file conf/tomcat-users.xml in your installation. That file must contain the credentials to let you use this webapp.For example, to add the manager-gui role to a user named tomcat with a password of s3cret, add the following to the config file listed above.
参考上面:
conf/tomcat-users.xml
修改完成,双击 shutdown.bat
,再双击 startup.bat
,输入用户名和密码后,可以正常登录进入。
Apache
对于 Tomcat
来说,本身已经可以作为一个 http
服务器来用,但是处理静态内容没有 Apache
强劲,因此最好的方式是静态 http
文件由 Apache
处理,动态的内容通过 Apache
转发给 Tomcat
处理。
目前使用最多的连接方式是 JK
:在 官网下载 jk
插件,点击 tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip
,将解压后的文件拷贝到 apache
的目录:/Apache24/modules
查看 ,重点关注
打开 Apache
配置文件:
/conf/httpd.conf
### 配置 mod_jkLoadModule jk_module modules/mod_jk.soJkWorkersFile conf/workers.propertiesJkMountFile conf/uriworkersmap.propertiesJkLogFile logs/mod_jk.logJkLogLevel info
jk_module :加载 jk
模块
JkWorkersFile :配置 tomcat
服务器
JkMountFile :配置 apache
将什么类型的 url
转发给 JK
模块
JkLogFile :日志文件
JkLogLevel :日志等级
创建文件:
/conf/workers.properties
#server 列表worker.list = controller,jkstatus #========tomcat1======== worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor=1 #server的加权比重,值越高,分得的请求越多 #========tomcat2========worker.tomcat2.port=9009worker.tomcat2.host=localhostworker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1#========controller,负载均衡控制器========#负载均衡控制器类型,lbfactor是负载平衡因数(LoadBalance Factor)worker.controller.type=lb#指定负载的worker列表,用逗号分隔 worker.controller.balance_workers=tomcat1 #粘性session(默认是打开的) 当该属性值=true(或1)时,代表session是粘性的,即同一session在集群中的同一个节点上处理,session不跨越节点。在集群环境中,一般将该值设置为false#worker.controller.sticky_session=false#设置用于负载均衡的server的session可否共享#worker.controller.sticky_session_force=1#========状态配置=========================worker.jkstatus.type=status
上述表示,我们使用 8009
端口,AJP/1.3
协议,将 apache
与 tomcat
关联起来。目前只配置一个 tomcat
服务器,如果需要负载均衡的话,可以在 worker.controller.balance_workers 后面添加服务器。
注意: 上述的端口和服务器的名称需要与 tomcat
的配置文件一致!如:8009
和 tomcat1
创建文件:
/conf/uriworkersmap.properties
/*.jsp=controller/jkstatus=jkstatus
表示 Apache
需要将 .jsp
文件转发给 tomcat
处理。
注意: 如果是 windows
平台,必须保存为 GBK
文件格式,不能是 UTF-8
!
上述配置完成后,我们还需要配置 tomcat
,打开文件:
apache-tomcat-9.0.2/conf/server.xml
在 apache-tomcat-9.0.2/webapps/ROOT
目录新建文件:
test.jsp
<% out.println("Who i am?"); %>
打开浏览器,默认 tomcat
端口为 8080
,我们先测试直接使用 tomcat
服务器能不能正常打开
输入:http://localhost:8080/test.jsp
Who i am?
说明 tomcat
可以正常解析,而 apache
工作在 80
端口。
输入:http://localhost/test.jsp
Who i am?
ok!
说明 apache
正常转发了该请求!
打开文件:
/Apache24/logs/mod_jk.log
[Sun Jan 21 17:19:09.709 2018] [19720:19904] [error] uri_worker_map_add::jk_uri_worker_map.c (875): invalid context '/*': does not begin with '/'[Sun Jan 21 17:19:09.709 2018] [19720:19904] [error] uri_worker_map_load::jk_uri_worker_map.c (1270): invalid mapping rule /*->controller[Sun Jan 21 17:19:09.710 2018] [19720:19904] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
查看此时文件:
/conf/uriworkersmap.properties
/*=controller/jkstatus=jkstatus
并没有什么问题啊,而且别人都这样配置,猜想肯定是文件格式问题,查看编码格式为 UTF-8
,由于当前的 Apache
运行在 Windows
下面,因此需要转换文件格式为 GBK
,重启 Apache
后测试:
[Sun Jan 21 17:31:54.466 2018] [19720:19904] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized[Sun Jan 21 17:31:54.734 2018] [20960:21280] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized[Sun Jan 21 17:31:54.822 2018] [20960:21280] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
没有报错了!