Apache Webserver ReverseProxy为Apache Solr管理面板提供服务

时间:2016-10-07 13:48:33

标签: apache solr debian jetty reverse-proxy

我正在尝试在远程服务器上运行Apache Solr服务(在其emdedded jetty服务器上)。管理员提供了以下信息:

DNS:my.server.com

IP:xxx.xxx.xxx

服务器操作系统:3.16.0-4-amd64#1 SMP Debian 3.16.36-1 + deb8u1(2016-09-03)x86_64 GNU / Linux

只能访问端口80。在服务器上,我们要部署Apache Solr和使用Solr作为搜索引擎的微服务。我想使用Apache Webserver将HTTP-Request转发到Solr Admin UI和微服务UI,但它似乎不起作用,我使用Apache Server版本:Apache / 2.4.10(Debian) 服务器内置:2016年9月15日20:44:43。

我安装了Apache并启动了服务器,到目前为止一切都按预期工作。我可以从Apache访问管理员视图,在我的浏览器中输入DNS。

我在这个关联https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension之后启用了几个模块:

  • a2enmod proxy
  • a2enmod proxy_http
  • a2enmod proxy_ajp
  • a2enmod rewrite
  • a2enmod deflate
  • a2enmod标头
  • a2enmod proxy_balancer
  • a2enmod proxy_connect
  • a2enmod proxy_html

然后我尝试在/etc/apache2/sites-available/myconf.conf下配置虚拟主机:

 <VirtualHost *:80>
  DocumentRoot /var/www/html
  ErrorLog /var/log/apache2/error.log
  CustomLog /var/log/apache2/access.log combined

  ProxyPass        /solr http://my.server.com:8983 retry=0 timeout=5
  ProxyPassReverse /solr http://my.server.com:8983
  ProxyPass        /microservice http://my.server.com:6868 retry=0 timeout=5
  ProxyPassReverse /microservice http://my.server.com:6868
  LogLevel debug

</VirtualHost>

Solr使用其标准端口8983,微服务将在端口6868上。当我尝试使用http://my.server.com/solr访问solr时,我得到HTTP 503服务不可用。

我首先尝试过这个:

/usr/sbin/setsebool -P httpd_can_network_connect 1

但它没有改变。我还必须先安装:

apt-get install policycoreutils

使此选项可用。 solr服务似乎没问题:

solr status

Found 1 Solr nodes:

Solr process 14082 running on port 8983
{
  "solr_home":"/etc/apache-solr/solr-6.2.0/server/solr",
  "version":"6.2.0 764d0f19151dbff6f5fcd9fc4b2682cf934590c5 - mike - 2016-08-20 05:41:37",
  "startTime":"2016-10-07T12:02:05.300Z",
  "uptime":"0 days, 1 hours, 29 minutes, 55 seconds",
  "memory":"29.7 MB (%6.1) of 490.7 MB"}

Apache日志一直在说:

The timeout specified has expired: AH00957: HTTP: attempt to connect to xxx.xxx.xxx:8983 (my.server.com) failed
AH00959: ap_proxy_connect_backend disabling worker for (my.server.com) for 0s
AH01114: HTTP: failed to make connection to backend: my.server.com

没有我的超时设置,everthing保持不变,但在我得到503错误之前需要很长时间。

任何提示?经过一天的努力,我很郁闷......我想要的只是完成任务。

提前致谢!

1 个答案:

答案 0 :(得分:1)

事实证明我需要在网址上添加斜杠:

  ProxyPass        /solr/ http://my.server.com:8983/ retry=0 timeout=5
  ProxyPassReverse /solr/ http://my.server.com:8983/
  ProxyPass        /microservice/ http://my.server.com:6868/ retry=0 timeout=5
  ProxyPassReverse /microservice/ http://my.server.com:6868/