apache HTTPD相同主机和端口上的子文件夹的不同vhost和反向代理设置

mpgws1up  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(173)

请,我一直试图配置httpd没有运气。我需要以下行为:

两个URL的SSL设置、主机名、端口等应相同...
我还没有能够在httpd中找到解决方案(在nginx中,你只是将指令proxy_set_header Host $host/$proxy_hosthttpserver向下移动一级到配置的location部分,但在httpd中,据我所知没有这样的事情).我还没有能够运行具有相同服务器名称和端口的2个vhost...

Listen 443 https

<VirtualHost *:443>
    ServerName  example.org

    SSLEngine On

    SSLProxyEngine On
    ProxyErrorOverride On
    ProxyPreserveHost On
    ProxyRequests Off
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    ProxyPass         /api/system-a/   https://external-domain.example2.org/system-a/
    ProxyPassReverse  /api/system-a/   https://external-domain.example2.org/system-a/

    ProxyPass        / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    SSLEngine On
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLProtocol All -SSLv2 +TLSv1.2
    SSLCipherSuite HIGH:!aNULL:!MD5
    SSLHonorCipherOrder On
    RequestHeader set X-Forwarded-Proto   "https"

    SSLCompression off
    SSLSessionTickets Off
    SSLCertificateFile      /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key

    #websockets
    RewriteEngine On
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]

    ProxyPass        /websocket/ "ws://localhost:8080/websocket/"
    ProxyPassReverse /websocket/ "ws://localhost:8080/websocket/"
</VirtualHost>
sbtkgmzw

sbtkgmzw1#

解决方案是关闭...节中的“ProxyPreserveHost”

ProxyPreserveHost On

    <Location "/api">
      ProxyPreserveHost Off
      ProxyErrorOverride Off
    </Location>

    ProxyPass        /api/system-a/   https://external-domain.example2.org/system-a/

    ProxyPass        / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

相关问题