【问题标题】:Context path on Apache reverse proxy for multiple backend services多个后端服务的 Apache 反向代理上的上下文路径
【发布时间】:2019-08-06 04:15:20
【问题描述】:

我为多个应用程序设置了一个 apache 反向代理,如下所示:

https://serverxx:8000 -> http://localhost:9000
https://serverxx:8001 -> http://localhost:9001
https://serverxx:8002 -> http://localhost:9002

/etc/httpd/conf.d/ 下有 3 个虚拟主机文件,它们完成了这个设置,它们如下所示:

Listen 8000 https

<VirtualHost *:8000>

    ProxyPreserveHost On
    SSLProxyEngine on
    ProxyRequests     Off

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/server.crt
    SSLCertificateKeyFile /etc/pki/tls/private/server.key
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"

    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off

    ProxyPass         /  http://localhost:9000/
    ProxyPassReverse  /  http://localhost:9000/

</VirtualHost>

由于新的要求,需要进行一些大修。可通过https://serverxx:800[0,1,2] 访问的 3 个应用程序现在应如下所示:

https://serverxx/app1 -> http://localhost:9000
https://serverxx/app2 -> http://localhost:9001
https://serverxx/app3 -> http://localhost:9002

换句话说,serverxx 将只监听 1 个端口 (443),并为 3 个不同的代理服务提供 3 个不同的上下文路径。

这可能吗?我一直在阅读https://httpd.apache.org/docs/2.4/vhosts/examples.html,但无法得到明确的答案。

提前致谢。

【问题讨论】:

    标签: apache reverse-proxy httpd.conf


    【解决方案1】:

    我终于明白了。

    对于那些对答案感兴趣的人,关键是为指向多个后端服务器的每个上下文路径添加多个 ProxyPass 和 ProxyPassReverse 值。

    Listen 8000 https
    
    <VirtualHost *:8000>
    
        ProxyPreserveHost On
        SSLProxyEngine on
        ProxyRequests     Off
    
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>
    
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/server.crt
        SSLCertificateKeyFile /etc/pki/tls/private/server.key
        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
    
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
    
        ProxyPass         /app1 -> http://localhost:9000
        ProxyPassReverse  /app1 -> http://localhost:9000
    
        ProxyPass         /app2 -> http://localhost:9001
        ProxyPassReverse  /app2 -> http://localhost:9001
    
        ProxyPass         /app3 -> http://localhost:9002
        ProxyPassReverse  /app3 -> http://localhost:9002
    
    </VirtualHost>
    

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 2016-09-14
      • 2018-03-18
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 2020-09-07
      • 2020-05-14
      • 1970-01-01
      相关资源
      最近更新 更多