URL foo.com/bar
을 통해 공개하고 싶은 웹 서비스가 있습니다. 그러나 Apache 리버스 프록시가 의도 한대로 작동하지 않습니다. 다음 코드가 포함 된 파일 001-default.conf
, 만들었습니다역방향 프록시 : 원하지 않는 URL 변경
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /bar http://foo.com:8080/bar
ProxyPassReverse /bar foo.com:8080/bar
DocumentRoot /var/www/foo/
ServerName info.foo.com
<Directory /var/www/foo>
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
오른쪽 지금은 404
오류 코드가 나타날합니다.
foo.com/bar의 모든 조회를 자동으로 foo.com:8080/bar
으로 리디렉션하려고합니다. 즉, 사용자는 foo.com/bar
만 볼 수 있습니다. 역방향 프록시 리디렉션에는 foo.com/bar?=foobar
과 같은 요청도 포함되어야합니다.
% sudo a2enmod proxy_http
Considering dependency proxy for proxy_http:
Module proxy already enabled
Module proxy_http already enabled
나는이 나를 도울 수 있습니다 거기에 누군가가 있기를 바랍니다 :
나는 proxy_http 및 프록시를 사용했다.
내 문제가 해결되지 않은유사 문제 : apache reverse proxy changes urlTransparent redirect to port 8080
처음에는 '리디렉션 영구/바 http : // foo : 8080/bar'을 제거하십시오. 리디렉션하지 않고 프록시하려고합니다. 기존의'ProxyPass' 지시자는 그렇게해야합니다. – arco444
www.foo.com/bar를 입력 할 때 404가 표시됩니다. 이 변경 사항을 반영하도록 질문을 업데이트했습니다. –
귀하의 서버 이름은 info.foo.com입니다. 즉, foo.com은 다른 VHOST를 공격 할 수 있습니다. – CodeTower