2개의 다른 서버에서 웹사이트를 호스팅하는 데 문제가 있습니다. 우리 회사는 웹 사이트가 Linux에서 호스팅되는 클라이언트를 위해 ASP.NET MVC를 사용하여 몇 페이지를 개발했습니다. 우리는 Windows 호스트에서 dll, 이미지, CSS 및 js 파일이 포함된 몇 개의 페이지를 호스팅한다고 가정합니다(1개의 IP와 여기에 호스팅되는 다른 많은 웹사이트가 있음). 그러나 주소는 해당 도메인이어야 합니다...www.ClientDomainLinux.com/MyMvcController/MyPage
저는 개발자이고 이를 달성하기 위해 IIS를 어떻게 설정해야 하는지 잘 모르겠습니다... 호스팅을 가리키는 프록시를 설정했지만 CSS, 이미지 또는 js 파일이 로드되지 않고 작동하지 않습니다...
링크가 제대로 작동하도록 IIS를 설정하는 방법에 대한 도움이 필요합니다.
어떤 종류의 아이디어라도 정말 감사합니다.
감사해요
답변1
두 가지 해결책이 떠오릅니다.
첫 번째는 ASP.NET www.yourwindowsserver.com/clients/clientXYZ/MyPage를 포함하는 클라이언트의 Linux 웹 사이트에 있는 간단한 프레임/iFrame입니다.
이는 설정이 간단하지만 고객 웹사이트의 기술에 정통한 방문자의 경우 두 번째 서버로 리디렉션되는 것을 볼 수 있습니다.
두 번째 대안은 Linux 웹 사이트의 일부를 역방향 프록시로 구성하는 것입니다. 이는 방문자가 www.ClientDomainLinux.com에만 연결하기 때문에 원활하게 표시된다는 장점이 있습니다. www.ClientDomainLinux.com의 웹 서버는 HTTP 프록시로 작동하여 /MyMvcController/MyPage에 대한 요청을 받고 해당 들어오는 요청을 www.yourwindowsserver.com/clients/clientXYZ/MyPage로 나가는 요청으로 변환하고 응답을 받아 재전송합니다. 웹사이트 방문자에게 응답하는 것입니다.
Linux 웹서버는 일반적으로 Apache 웹서버를 사용합니다. 역방향 프록시 구성은 mod_proxy 또는 mod_rewrite를 사용하며 이는 일반적으로 관리자가 구성해야 합니다.
# somewhere in the main apache configuration file
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# either in the virtual host definition for www.ClientDomainLinux.com or possibly .htaccess
ProxyPass /MyMvcController/MyPage http://www.yourwindowsserver.com/clients/clientXYZ/MyPage
ProxyPassReverse /MyMvcController/MyPage http://www.yourwindowsserver.com/clients/clientXYZ/MyPage
다시 쓰기 규칙을 사용하는 대안은 다음과 같습니다.
# somewhere in the main apache configuration file
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
# either in the virtual host definition for www.ClientDomainLinux.com or possibly .htaccess
RewriteRule ^/MyMvcController/MyPage(.*) http://otherhost/otherpath$1 [P]
http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html http://httpd.apache.org/docs/2.4/mod/mod_proxy.html