
У меня есть приложение, работающее на , localhost:2000
в то время как мой сайт находится на localhost. Я хотел бы указать каталог /projects/projectName
-> localhost:2000
. Однако проблема возникает, когда приложение делает запросы get/post.
Например, если запрос GET сделан по адресу /run
, запрос отображает URL-адрес GET как https://localhost/run
и возвращает 404. Здесь есть две проблемы:
- Он перенаправляет на порт 443; и
- порт 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-адресов.