![모노 웹 애플리케이션을 실행하는 VirtualHost 내에서 Apache 역방향 프록시가 작동하지 않습니다.](https://rvso.com/image/568275/%EB%AA%A8%EB%85%B8%20%EC%9B%B9%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20VirtualHost%20%EB%82%B4%EC%97%90%EC%84%9C%20Apache%20%EC%97%AD%EB%B0%A9%ED%96%A5%20%ED%94%84%EB%A1%9D%EC%8B%9C%EA%B0%80%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
아래 가상 호스트로 실행되는 모노 웹 애플리케이션이 있습니다. Apache 2.2.20 / Ubuntu 11.10에서 실행 중입니다. 이 동일한 도메인에 대해 비동기 또는 AJAX 유형 호출을 다시 수행할 수 있도록 이 가상 호스트 내에 역방향 프록시를 추가하려고 했습니다. 내 비동기 요청은 다른 도메인에 있는 서비스를 호출하는 많은 브라우저에서 문제가 있습니다(도메인 간 요청 문제). 다음을 사용하여 이 다른 서비스에 대한 역방향 프록시 호출을 수행하고 싶습니다.http://www.whatever.com/monkey/. 그래서 이 작업을 수행하기 위해 지시문과 최상위 지시문을 추가했습니다. 그런데 이상하네요... 제가 하는 일은 아무 효과도 없는 것 같아요. 내 기본 웹 사이트 virtualhost 파일에 정확히 동일한 마크업을 넣을 수 있으며 훌륭하게 작동합니다. 거래는 무엇입니까? 이러한 Mono 지시어 중 일부가 문제를 일으키고 있습니까?
<VirtualHost *:80>
ServerName www.whatever.com
ServerAlias whatever.com *.whatever.com
ServerAdmin [email protected]
DocumentRoot /home/myuser/web/whatever
ProxyRequests off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
<Location /monkey/>
ProxyPass http://www.google.com/
ProxyPassReverse http://www.google.com/
</Location>
MonoServerPath www.whatever.com "/usr/bin/mod-mono-server2"
MonoSetEnv www.whatever.com MONO_IOMAP=all
MonoApplications www.whatever.com "/:/home/myuser/web/whatever"
<Location "/">
Allow from all
Order allow,deny
MonoSetServerAlias www.whatever.com
SetHandler mono
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
</Location>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
</IfModule>
</VirtualHost>
답변1
<Location /> SetHandler 모노가 <Location /monkey>에 적용되고 있는 것으로 추측됩니다. 모노 핸들러를 제거하고 Apache가 ProxyPass* 지시문을 수행하도록 하려면 <Location /monkey> 내에 명시적인 "SetHandler none"이 필요할 수 있습니다.