Apache Virtual Host ProxyPass два порта для внутреннего (внутри локальной сети) и внешнего использования - PullRequest
0 голосов
/ 22 февраля 2019

Есть два URL на сайт.Внешне это https://example.com:543, а внутри https://example.com. Внешние запросы на порт 543 внутренне маршрутизируются на порт 443, и, следовательно, используется один виртуальный хост на порту 443, но с несколькими записями ProxyPass.Проблема заключается в том, что в любой момент времени только одна из https://example.com:543 и https://example.com работает, отключив одну из записей ProxyPass в файле VirtualHost.Может ли сосуществовать и работать?

#  ProxyPass             / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:443/ams/VirtualHostRoot/
#  ProxyPassReverse      / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:443/ams/VirtualHostRoot/

 ProxyPass             / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:543/ams/VirtualHostRoot/
 ProxyPassReverse      / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:543/ams/VirtualHostRoot/

Ниже приведена полная конфигурация виртуального хоста

<VirtualHost *:443>
    ServerName example.com
    ErrorLog /var/log/apache2/ssl_error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    TransferLog /var/log/apache2/ssl_access_log
    LogLevel warn
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
    SSLCertificateChainFile /etc/apache2/ssl/example_com.ca-bundle
    <Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
    </Files>
    SetEnvIf User-Agent ".*MSIE.*"          nokeepalive ssl-unclean-shutdown          downgrade-1.0 force-response-1.0
    CustomLog /var/log/apache2/ssl_request_log           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    # Balance load between 4 ZEO front-ends
    <Proxy balancer://lbyourorganization>
    BalancerMember http://127.0.0.1:8081/
    BalancerMember http://127.0.0.1:8082/
    BalancerMember http://127.0.0.1:8091/
    BalancerMember http://127.0.0.1:8092/


    # Use Pending Request Counting Algorithm (s. http://httpd.apache.org/docs/current/mod/mod_lbmethod_bybusyness.html).
    # This will reduce latencies that occur as a result of long running requests temporarily blocking a ZEO client.
    # You will need to install the separate mod_lbmethod_bybusyness module in Apache 2.4.
    ProxySet lbmethod=bybusyness
    </Proxy>


    ProxyPass /balancer-manager !
    #  ProxyPass             / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:443/ams/VirtualHostRoot/
    #  ProxyPassReverse      / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:443/ams/VirtualHostRoot/

    ProxyPass             / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:543/ams/VirtualHostRoot/
    ProxyPassReverse      / balancer://lbyourorganization/http://localhost/VirtualHostBase/https/example.com:543/ams/VirtualHostRoot/        
</VirtualHost>

1 Ответ

0 голосов
/ 08 марта 2019

Самое простое решение состоит в том, чтобы изменить конфигурацию маршрутизатора, чтобы направлять внешний трафик на другой порт, отличный от внутреннего трафика (скажем, на 543 для внутреннего использования), а затем иметь две конфигурации <VirtualHost> в Apache Httpd с двумя разными ProxyPass/ProxyPassReverseнастройки.

...