我需要首先将apache服务器与tomcat集成,然后使用localhost中的apache将http请求重定向到https .
阐释:
-
我有一个在tomcat服务器上运行的java web开发项目 . 让网址为http://localhost:8080/myProject
-
我需要将我的tomcat服务器与apache服务器集成,以便http://localhost/myProject显示页面http://localhost:8080/myProject
-
我需要添加安全证书并使其成为https请求,即,如果我输入http://localhost/myProject,它应该指向https://localhost/myProject并显示http://localhost:8080/myProject中显示的页面 .
我能够使用mod_jk成功集成两个服务器,并且我已经使用mod_rewrite安装了自签名安全证书,并在httpd-ssl.conf文件中指定了证书和密钥 . 这是我在httpd.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]
它成功地将页面显示为http请求 . 但是在添加该行时,虽然它重定向到https请求,但它会出现“未找到”错误 . 我无法弄清楚如何纠正这个问题 . 我希望我能够解释这个问题 . 我是服务器和apache模块的新手,所以这可能是一个非常蹩脚的问题,但请帮我解决这个问题 .
2 回答
也许您的Apache HTTPD只监听端口80,当您在没有声明端口的情况下请求https://localhost/时,您的浏览器正在请求标准的https端口443 .
因此,请检查您是否正在httpd.conf中监听端口80和443,或者仅检查80.如果只有80,则在Listen语句中添加443个侦听句应该可以解决问题
httpd-ssl.conf文件中有一个标记“<VirtualHost default:443>” . 我在标记的末尾添加了以下语句并且它有效 .