我需要集成apache服务器与tomcat第一,然后重定向超文本传输协议请求到https使用apache在localhost。
解释:
我能够使用mod_jk成功地集成两个服务器,并且我已经使用mod_rewrite并通过在httpd-ssl. conf文件中指定证书和密钥安装了自签名安全证书。
# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module "C:/Program Files/BitNami WAMPStack/apache2/modules/mod_jk.so"
# Where to find workers.properties
# Update this path to match your conf directory location
JkWorkersFile C:/softwares/apache-tomcat-7.0.42/conf/workers.properties
# Where to put jk logs
# Update this path to match your logs directory location
JkLogFile C:/MyProject/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://localhost$1 [R,L]
# Send everything for context /myProject to worker ajp13
JkMount /myProject ajp13
JkMount /myProject/* ajp13
面临的问题:在移除线路时,
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://localhost$1 [R,L]
它成功地将页面显示为超文本传输协议请求。但是在添加该行时,尽管它重定向到https请求,但它给出了一个“未找到”错误。我不知道如何纠正这个问题。我希望我能够解释这个问题。我是服务器和apache模块的新手,所以这可能是一个非常蹩脚的问题,但是请帮我解决这个问题。
也许您的Apache HTTPD只监听端口80,当您请求https://localhost/而不声明端口时,您的浏览器请求的是标准https端口443。
因此,请检查您是在httpd. conf中同时监听端口80和443还是仅监听端口80。如果只有80,则在听语句中的监听句子上添加443应该可以解决问题
有一个标签"
<VirtualHost _default_:443>
....
JkMount /myProject ajp13
JkMount /myProject/* ajp13
</VirtualHost>
这些配置非常简单。但是,在所有的网站中缺少一个重要的部分。即请将虚拟主机文件中定义的服务器名与主机文件中的IP地址映射。例如,127.0.0.1localhost(如果没有虚拟主机)127.0.0.1proxyportal.company.com(如果标签中的服务器名proxyportal.company.com)