听起来像一个基本问题,但我不知道 apache 配置。任何帮助都会很棒。
由于Open TSDB 不支持 https 发送数据(通过 REST API),我们想在 apache 或“Apache Tomcat”中创建一个 https 代理。例如,本地机器同时具有 TSDB 和 Apahce。apache 应该接受 http 和 https,如果我发送任何到https://<PUBLIC IP>/api/input
,它应该转发到TSDB
同一台机器(或者TSDB
可能在不同的机器上)http
。
大图
MY Code
<----> https://<PUBLIC IP>/api/input
<----代理到---->http://localhost/api/input
上面我提到Apache Tomcat
是因为,主要是我们将 Apache Tomcat 用于其他目的,所以,首要任务是 Tomcat(是否可以使用 Tomcat?)。
注意:Apache
我知道和之间的区别Apache Tomcat
:Apache 是 http Web 服务器只处理 http 流量,tomcat 是用于处理请求的 serverlet 容器(仅适用于 Java)。在构建Tomcat有Apache。(请纠正我,如果我错了)
在 Apache HTTPD 中基本上是这样的:
注意:您需要先加载mod_proxy和mod_proxy_http模块。
感谢@ezra-s,我能够发送数据。但是在做的时候,我有点挣扎,所以我只想分享一些信息。
1.
sudo apt-get install -y libapache2-mod-proxy-html libxml2-dev apache2-prefork-dev libxml2-dev
2.启用模块
sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_htm ssl
3.生成的自签名证书这里是指南
4.添加配置到
/etc/apache2/sites-enabled/000-default.conf
5.我尝试重新启动
sudo service apache2 restart
。但我得到了错误经过长时间的互联网搜索,我发现了 mod_xml2enc 不可用的错误。所以,我从源代码构建了这个模块
谢谢您的帮助!
有很多方法可以达到你想要的结果。
让你的 Tomcat 监听 127.0.0.1:8080 并在它之前设置一些前端服务器。您的前端服务器将侦听 *:80 和 *:443 并将所有请求转发到隐藏的 Tomcat。
有很多前端服务器。它可以是 Apache(如您提供的那样)、nginx(消耗更少的内存)或 haproxy(提供出色的统计数据以及几乎恒定的内存占用)。
一种可能的 nginx 配置片段可以是:
对于生成 TLS 配置,我推荐Mozilla SSL 配置生成器