Apache HTTPD服务下的PROXY代理设置
场景描述
当我们的环境中只有一个对外的HTTP发布端口,但是内部有很多需要对外发布的WEB服务时,我们可以采用HTTPD PROXY代理方式,当然,也可以代理websocket。
- 我们只有有一个HTTP发布http://abc.com/
- Zeppelin有一个web端口18080,还有一个websocket服务,需要发布成: http://abc.com/zeppelin/
- ELK有一个8080端口提供查询: http://abc.com/elk/
- Tomcat有一个8888端口发布: http://abc.com/tomcat/
详细配置
先确认httpd服务启用了一下三个模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
我们还需要三个httpd配置文件来支撑转发:
Zeppelin配置文件 /etc/httpd/conf.d/zeppelin.conf
ProxyRequests Off
ProxyPass /zeppelin/ http://localhost:18080/
ProxyPassReverse /zeppelin/ http://localhost:18080/
ProxyPass /ws ws://localhost:18080/ws
ProxyPassReverse /ws ws://localhost:18080/ws
<Location "/zeppelin/">
Order allow,deny
Allow from all
</Location>
ELK配置文件 /etc/httpd/conf.d/elk.conf
ProxyRequests Off
ProxyPass /elk/ http://localhost:8080
ProxyPassReverse /elk/ http://localhost:8080
<Location "/elk/">
Order allow,deny
Allow from all
</Location>
ProxyPass /tomcat/ http://localhost:8888
ProxyPassReverse /elk http://localhost:8888
<Location "/tomcat/">
Order allow,deny
Allow from all
</Location>
效果展现
Zeppelin效果
ELK效果
Tomcat效果