
Tengo una aplicación ejecutándose localhost:2000
mientras 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/run
y devuelve un 404. Los dos problemas aquí son:
- Redirige al puerto 443; y
- 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:2000
es 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.