
localhost:2000
내 사이트가 localhost에 있는 동안 앱이 실행 중입니다 . /projects/projectName
-> 디렉토리를 가리키고 싶습니다 localhost:2000
. 그러나 앱이 get/post 요청을 할 때 문제가 발생합니다.
예를 들어 GET 요청이 에서 이루어진 경우 /run
요청은 GET URL을 로 표시하고 https://localhost/run
404를 반환합니다. 여기서 두 가지 문제는 다음과 같습니다.
- 포트 443으로 리디렉션됩니다. 그리고
- 이제 요청 시 포트 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을 생성하도록 애플리케이션을 구성해야 합니다.