提问者:小点点

使用apache服务器(Windows)将tomcat重定向到https


我需要集成apache服务器与tomcat第一,然后重定向超文本传输协议请求到https使用apache在localhost。

解释:

  1. 我有一个在tomcat服务器上运行的javaweb开发项目。让urlhttp://localhost:8080/myProject
  2. 我需要将我的tomcat服务器与apache服务器集成,以便http://localhost/myProject显示页面http://localhost:8080/myProject
  3. 我需要添加安全证书并使其成为https请求,即,如果我键入http://localhost/myProject它应该直接指向https://localhost/myProject并显示http://localhost:8080/myProject.中显示的页面

我能够使用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模块的新手,所以这可能是一个非常蹩脚的问题,但是请帮我解决这个问题。


共3个答案

匿名用户

也许您的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)