
그래서 저는 Apache 2.4.25를 실행하는 Debian 9 상자를 얻었습니다.
Apache가 다른 서버의 웹 콘텐츠도 제공하도록 하고 싶습니다(http://192.168.1.100:8088) 네트워크에서; 이 작업을 수행하기 위해 mod_proxy를 설정했지만 작업을 수행하는 데 어려움을 겪고 있습니다.
이 구성은 올바른 서버에서 일부 오류 콘텐츠를 가져오므로 거의 작동하는 것 같습니다. URL에 추가되는 app1 엔드포인트에 URL 문제가 있는 것 같나요? 이 끝점은 실제로 어디에도 존재하지 않으며 단지 요청을 잡는 데 사용됩니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
ProxyRequests Off
<proxy *>
Order deny,allow
Allow from all
</proxy>
ProxyPass /app1 http://192.168.1.100:8088/
ProxyPassReverse /app1 http://localhost/
</virtualHost>
모든 요청을 프록시하려고 하면 제대로 작동하지만 분명히 localhost의 어떤 리소스에도 액세스할 수 없습니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
ProxyRequests Off
<proxy *>
Order deny,allow
Allow from all
</proxy>
ProxyPass / http://192.168.1.100:8088/
ProxyPassReverse / http://localhost/
</virtualHost>
아마도 일종의 ReWrite를 수행해야 할 것 같은데요? 저는 특별히 Apache mod_proxy를 사용해 본 경험이 없습니다.
:-(
답변1
의견에서 언급했듯이 적어도 두 가지 명백한 문제가 있습니다.
ProxyPass
각 개인 과 명령문 의 "종료" 슬래시는ProxyPassReverse
일치해야 합니다.ProxyPass
ProxyPassReverse
동일한 호스트를 참조해야 합니다 .
따라서 첫 번째 예에서는 다음과 같습니다.
ProxyPass /app1 http://192.168.1.100:8088/
ProxyPassReverse /app1 http://localhost/
해야한다:
ProxyPass /app1 http://192.168.1.100:8088
ProxyPassReverse /app1 http://192.168.1.100:8088
또는:
ProxyPass /app1 http://localhost
ProxyPassReverse /app1 http://localhost
두 번째 예에서는 /
여기에 언급된 목적에 따라 "종료" 슬래시로 간주됩니다. 그래서:
ProxyPass / http://192.168.1.100:8088/
ProxyPassReverse / http://localhost/
호스트를 일치시키기만 하면 됩니다.
ProxyPass / http://192.168.1.100:8088/
ProxyPassReverse / http://192.168.1.100:8088/
또는:
ProxyPass / http://localhost/
ProxyPassReverse / http://localhost/
노트
Apache가 프록시하는 URL을 처리하는 방식을 사용하면 수신 애플리케이션이 자체 URL을 구성하는 방식에 따라
/
더 나은 결과를 얻을 수 있다는 점을 언급할 가치가 있을 것입니다./app1
수신 애플리케이션의 작동 방식에 따라 여러 URL을 프록시해야 할 수도 있습니다.
어떤 이유로 아직 활성화되지 않은 경우 추가로 활성화
mod_proxy_html
하고 싶을 수도 있습니다 .mod_proxy_http
mod_proxy