Apache 페이지를 애플리케이션으로 프록시하기

Apache 페이지를 애플리케이션으로 프록시하기

localhost:2000내 사이트가 localhost에 있는 동안 앱이 실행 중입니다 . /projects/projectName-> 디렉토리를 가리키고 싶습니다 localhost:2000. 그러나 앱이 get/post 요청을 할 때 문제가 발생합니다.

예를 들어 GET 요청이 에서 이루어진 경우 /run요청은 GET URL을 로 표시하고 https://localhost/run404를 반환합니다. 여기서 두 가지 문제는 다음과 같습니다.

  1. 포트 443으로 리디렉션됩니다. 그리고
  2. 이제 요청 시 포트 2000이 손실됩니다.

업데이트: SSL을 끄려고 했지만 요청 시 포트 2000이 여전히 손실됩니다. 이상적으로는 SSL과 함께 작동하고 싶습니다.

이 두 가지 문제는 하나이고 동일할 수 있지만 확실하지 않습니다.

작동 방식을 확인하려면 http://stevenshi.me:2000작동 중인 응용 프로그램을 살펴보세요. 보시다시피 GET 및 POST 요청은 위의 URL + 로 이동합니다 /foo.

내 현재 Apache conf 파일은 다음과 같습니다.

<VirtualHost *:80>

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

    ServerAdmin [email protected]
    ServerName stevenshi.me
    ServerAlias www.stevenshi.me
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
            ServerAdmin [email protected]
            ServerName stevenshi.me:443
            ServerAlias www.stevenshi.me
            DocumentRoot /var/www/html

            SSLEngine on
            SSLProtocol all -SSLv2
            SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

            SSLCertificateFile /etc/apache2/ssl/ssl.crt
            SSLCertificateKeyFile /etc/apache2/ssl/private.key
            SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem

            ProxyRequests on
            ProxyPreserveHost on
            <Proxy *>
                    Order deny,allow
                    Allow from localhost
            </Proxy>

            RewriteEngine on
            RewriteRule ^/projects/CS32Brewer/(.*)$ http://localhost:2000/$1 [

            #ProxyPass /projects/CS32Brewer/ http://localhost:2000/
            ProxyPassReverse /projects/CS32Brewer/ http://localhost:2000/

            #ProxyPass /projects/Maps http://locahost:2001
            #ProxyPassReverse /projects/Maps http://localhost:2001

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
</IfModule>

답변1

mod_rewrite를 사용하여 다시 작성하거나 적절한 URL을 생성하도록 애플리케이션을 구성해야 합니다.

관련 정보