apache转发tomcat http转https
2018-02-05 16:51
232 查看
最近在弄小程序,而小程序网络请求所需要的链接需要https安全链接,之前胡乱配置一番可以用了,不过并不太理解。
后来又需要一个php项目,各处查看了一下,需要apache服务器,而我的只有一个域名,已经给了tomcat了,如果在域名后面加端口号又显得太蠢,但总不可能在申请一个域名吧?思来想去,只能配置转发了。
(这里更正一下,其实并不是域名问题,而是我只有一个服务器,所以就打算弄集群了,后来我才知道可以申请二级域名来着)
如果是新解压的tomcat,并不需要配置什么,主要都是在apache上。
我所使用的是apache2.4,证书使用的是letsencrypt-win-simple.v1.9.8.2生成的证书。
在Apache24/conf/httpd.conf文件修改:
找到
并去掉前面的#就行
这里说一下,在apache里面自动配有ssl凭证了,就是
Include conf/extra/httpd-ahssl.conf
在它里面有一行 Listen 443 https,这是开启443端口的监听,如果你不需要ahssl配置,可以把Include conf/extra/httpd-ahssl.conf屏蔽掉,并且在httpd-ssl.conf文件里加上Listen
443 https
(由于使用的apache自带凭证,会提示您的连接不是私密连接,所以还是使用自己的凭证吧)
在httpd.conf文件的最末尾加上
这是http转https的,如果有碰到RewriteLog和RewriteLogLevel报错,就把这两个屏蔽掉(这是输出日志,暂且还没去找解决办法,主要是不怎么用到)
接下来是Apache24/conf/extra/httpd-ssl.conf文件:
在上面Include conf/extra/httpd-ssl.conf就是引用这个文件
贴上我的配置
上面我的配置按着简单来配的,暂时没发现其他问题。
说明一下ProxyPass和ProxyPassReverse,配置格式为:
后来又需要一个php项目,各处查看了一下,需要apache服务器,而我的只有一个域名,已经给了tomcat了,如果在域名后面加端口号又显得太蠢,但总不可能在申请一个域名吧?思来想去,只能配置转发了。
(这里更正一下,其实并不是域名问题,而是我只有一个服务器,所以就打算弄集群了,后来我才知道可以申请二级域名来着)
如果是新解压的tomcat,并不需要配置什么,主要都是在apache上。
我所使用的是apache2.4,证书使用的是letsencrypt-win-simple.v1.9.8.2生成的证书。
在Apache24/conf/httpd.conf文件修改:
找到
LoadModule ssl_module modules/mod_ssl.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so Include conf/extra/httpd-ssl.conf
并去掉前面的#就行
这里说一下,在apache里面自动配有ssl凭证了,就是
Include conf/extra/httpd-ahssl.conf
在它里面有一行 Listen 443 https,这是开启443端口的监听,如果你不需要ahssl配置,可以把Include conf/extra/httpd-ahssl.conf屏蔽掉,并且在httpd-ssl.conf文件里加上Listen
443 https
(由于使用的apache自带凭证,会提示您的连接不是私密连接,所以还是使用自己的凭证吧)
在httpd.conf文件的最末尾加上
RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] RewriteLog logs/rewrite.log RewriteLogLevel 10
这是http转https的,如果有碰到RewriteLog和RewriteLogLevel报错,就把这两个屏蔽掉(这是输出日志,暂且还没去找解决办法,主要是不怎么用到)
接下来是Apache24/conf/extra/httpd-ssl.conf文件:
在上面Include conf/extra/httpd-ssl.conf就是引用这个文件
贴上我的配置
<VirtualHost _default_:443> SSLEngine on ServerName localhost:443 #对应httpd.conf里的ServerName ServerAlias www.example.com www.xxx.com #可以配置多个域名,这里我不需要 SSLProtocol TLSv1 TLSv1.1 TLSv1.2 SSLCertificateFile "${SRVROOT}/conf/ssl/www.example.com-crt.pem" #证书文件地址 SSLCertificateKeyFile "${SRVROOT}/conf/ssl/www.example.com-key.pem" #证书密钥地址 #我把这两个文件复制进apache/conf/ssl文件夹下,如果在其他文件夹,可以写绝对路径 DocumentRoot "${SRVROOT}/htdocs" #项目路径,如果只是转发,可以不需要 CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> ProxyPass / http://localhost:8080/ 转发配置 ProxyPassReverse / http://localhost:8080/ </VirtualHost>
上面我的配置按着简单来配的,暂时没发现其他问题。
说明一下ProxyPass和ProxyPassReverse,配置格式为:
ProxyPass /项目名 http://tomcat项目路径:tomcat端口号/url ProxyPassReverse /项目名 http://tomcat项目路径:tomcat端口号/url[/code] 比如配置为:/example http://localhost:8080/example 表示的是当我输入域名www.example.com的时候,访问的是apache目录下的htdocs里面的项目
而当我输入www.example.com/example的时候,访问的才是tomcat下的example项目
由于我在tomcat/conf/server.xml配置了默认访问项目,并且需要直接使用域名就可以访问example项目,所以直接以/表示tomcat的根目录,并且不需要url,url可以表示项目,也可以是某一链接
最后在说一下,记得打开防火墙,把80端口和443端口开放,否则无法使用域名直接访问。
右下角->打开网路和共享中心->windows网络防火墙->高级设置->入站规则->新建规则
在打开的窗口里选择->端口->TCP:特定本地端口:(填80或者443)->允许链接->命名
由于个人技术水平有限,如有什么不对的地方,欢迎指正。
相关文章推荐
- Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https
- Apache 配置Https 转发Tomcat Http
- Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https【转载】
- Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https
- apache http 转发请求至tomcat/JBOSS/weblogic/websphere
- apache多域名转发至tomcat&https设置&虚拟主机的设置
- tomcat 转发http请求到https
- Mac Apache服务器搭建、Tomcat(http)服务器搭建、Tomcat(https)服务器搭建
- apache-tomcat-9.0.1 配置多个虚拟主机并且配置多个域名的多个ssl支持https
- linux apache 配置多个域名转发不同tomcat
- HTTP 错误 500.0 - Internal Server Error 调用 GetFilterVersion 失败,在 ISAPI 筛选器 "D:\apache-tomcat-6.0.20\co
- Apache整合Tomcat详解系列(二)Apache Tomcat https应用
- 后端tomcat不开启https,用nginx反向代理使网站同时支持http和https协议总结
- Apache HttpServer和tomcat实现负载均衡
- 通向架构师的道路(第二天)之apache tomcat https应用
- Tomcat配置https与http自动跳转和tomcat单双向SSL配置及IE访问HTTPS下载文件失败
- Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)
- Apache Http Server和Tomcat 之区别
- TOMCAT用https替换http的方法
- 阿里云证书Tomcat下http转https