프록시가 웹 앱 콘텐츠를 반환하지 않음

프록시가 웹 앱 콘텐츠를 반환하지 않음

포트 80을 통해 최종 사용자와 포트 3001을 통해 Express Server와 통신하는 웹앱이 있습니다.역방향 프록시하지만 코드는 웹 앱 HTML 코드 대신 최종 사용자에게 직접 서버 응답을 반환하는 것 같습니다. 포트 3001에 서버 API 요청을 보내는 동안 일반적인 HTML 응답을 계속 보내려면 웹 앱이 필요합니다. 프록시를 잘못 설정했나요?

여기서 까다로운 점은 내 웹 앱이 서버(최종 사용자에 대한)와 클라이언트(Express 서버에 대한) 역할을 모두 수행한다는 것입니다.

내 가상 호스트 구성은 다음과 같습니다.

<VirtualHost *:443>
    SSLEngine on
    SSLProxyEngine on
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ServerName 192.168.253.101
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/request.log combined
    SSLCertificateFile "/etc/ssl/certs/Client_Cert.crt"
    SSLCertificateKeyFile "/etc/ssl/certs/Client_Key.key"
        ProxyRequests Off
        <Proxy *>
           Order deny,allow
           Allow from all
        </Proxy>
        ProxyPass / https://localhost:3001/
        ProxyPassReverse / https://localhost:443/
</VirtualHost>

다이어그램

답변1

ProxyPass 행을 ProxyPassMatch로 수정하면 추가 API 호출을 수신 대기 중인 서버에 전달하는 동시에 루트 도메인에서 HTML 페이지에 계속 액세스할 수 있습니다.

<VirtualHost *:443>
    SSLEngine on
    SSLProxyEngine on
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ServerName 192.168.253.101
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/request.log combined
    SSLCertificateFile "/etc/ssl/certs/Client_Cert.crt"
    SSLCertificateKeyFile "/etc/ssl/certs/Client_Key.key"
        ProxyRequests Off
        <Proxy "*">
           Require host yournetwork.example.com
        </Proxy>
       ProxyPassMatch ^/([a-z]+)$ https://localhost:3001/$1
</VirtualHost>

관련 정보