Проксирование страницы Apache в приложение

Проксирование страницы Apache в приложение

У меня есть приложение, работающее на , localhost:2000в то время как мой сайт находится на localhost. Я хотел бы указать каталог /projects/projectName-> localhost:2000. Однако проблема возникает, когда приложение делает запросы get/post.

Например, если запрос GET сделан по адресу /run, запрос отображает URL-адрес GET как https://localhost/runи возвращает 404. Здесь есть две проблемы:

  1. Он перенаправляет на порт 443; и
  2. порт 2000 теперь потерян по запросу.

Обновление: Я попробовал отключить SSL, но порт 2000 все еще теряется по запросу. В идеале я хотел бы, чтобы это работало с SSL.

Возможно, эти две проблемы — одно и то же, но я в этом не уверен.

Чтобы увидеть, как это должно работать, http://stevenshi.me:2000вот работающее приложение. Как вы можете видеть, запросы GET и POST идут на указанный выше url + /foo.

Вот мой текущий файл конфигурации Apache

<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-адресов.

Связанный контент