概述:Apache httpd 和tomcat各有千秋,httpd 主要处理html等等静态网页,而tomcat可以处理jsp,servlet等等动态脚本。现在如何整合它们
1、先决条件
JDK安装(笔者为JDK1.8),没有java环境自行百度
安装好tomcat(笔者为tomcat 7.0) 这个百度一下很多的
安装好Apache httpd(httpd2.4版本) 参考:安装Apache httpd
2、Apache httpd作为代理服务转发到tomcat上
步骤一:配置Apache http的配置文件 在${Apache_httpd_HOME}/conf 下一个配置文件httpd.conf
搜索到proxy
然后在该文件末尾添加如下内容
ProxyPass /loch-ness http://localhost:8080
ProxyPassReverse /loch-ness http://localhost:8080
ProxyVia On
如图所示 表示输入 localhost/loch-ness 自动访问 http://localhost:8080, 这里可以配置更多代理映射
Tomcat 基本不需要配置server.xml,默认即可
步骤二、启动tomcat 和启动Apache httpd服务
tomcat : 参考:启动tomcat
Apache httpd: 参考:启动httpd
步骤三、验证结果
上面原因是因为tomcat.css采用的是相对路径,所以在localhost/tomcat.css是没有的,但是也可采用代理形式, 在httpd.conf后面追加如下内容,就好了
ProxyPass /tomcat.png http://localhost:8080/tomcat.png
ProxyPassReverse /tomcat.png http://localhost:8080/tomcat.png
ProxyPass /tomcat.css http://localhost:8080/tomcat.css
ProxyPassReverse /tomcat.css http://localhost:8080/tomcat.css
2017年11月30日14:19:59
去掉
ProxyPass /tomcat.png http://localhost:8080/tomcat.png
ProxyPassReverse /tomcat.png http://localhost:8080/tomcat.png
ProxyPass /tomcat.css http://localhost:8080/tomcat.css
ProxyPassReverse /tomcat.css http://localhost:8080/tomcat.css
方法一:只要输入网址多加"/" 例如:http://localhost/loch-ness/ (其实css文件在http://localhost/loch-ness/tomcat.css, 不加的会在http://localhost/tomcat.css 找,肯定找不到的。)
方法二:利用重定向,(外观就是地址栏改变了)
ProxyHTMLURLMap http://localhost:8080 /loch-ness
RewriteEngine On
RewriteRule ^/loch-ness$ http://localhost:8080 [R,L]
<Location /loch-ness/>
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap / /loch-ness/
RequestHeader unset Accept-Encoding
</Location>
对于html网页其实可以用mod_proxy_html 模块 注意这个模块依赖于 mod_xml2enc模块,同时打开headers_module模块 、rewrite_module模块(这个解决样式相对路径问题)所以解决办法就是配置httpd.conf取消这个模块的注释(去掉前面的#号)
ProxyHTMLURLMap http://localhost:8080 /loch-ness
RewriteEngine On
RewriteRule ^/loch-ness$ http://localhost:8080 [R,L]
<Location /loch-ness/>
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap / /loch-ness/
RequestHeader unset Accept-Encoding
</Location>
LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so