Proxy de una página Apache a una aplicación

Proxy de una página Apache a una aplicación

Tengo una aplicación ejecutándose localhost:2000mientras mi sitio está en localhost. Me gustaría señalar el directorio /projects/projectName-> localhost:2000. Sin embargo, el problema surge cuando la aplicación realiza solicitudes de obtención/publicación.

Por ejemplo, si se realiza una solicitud GET en /run, la solicitud muestra la URL GET https://localhost/runy devuelve un 404. Los dos problemas aquí son:

  1. Redirige al puerto 443; y
  2. el puerto 2000 ahora se pierde a pedido.

Actualización: Intenté desactivar SSL pero el puerto 2000 aún se pierde a pedido. Idealmente me gustaría que esto funcione con SSL.

Estas dos cuestiones pueden ser la misma, pero no estoy seguro.

Para ver cómo se supone que funciona, http://stevenshi.me:2000es la aplicación funcional. Como puede ver, las solicitudes GET y POST van a la URL anterior + /foo.

Aquí está mi archivo de configuración de Apache actual

<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>

Respuesta1

Tendrá que reescribir usando mod_rewrite o configurar la aplicación para crear URL adecuadas.

información relacionada